package org.fenixedu.bennu.core.json; import org.fenixedu.bennu.core.domain.exceptions.BennuCoreDomainException; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.JsonPrimitive; public class JsonUtils { public static String getString(JsonObject json, String property) { JsonPrimitive primitive = getPrimitive(json, property); return primitive != null ? primitive.getAsString() : null; } public static int getInt(JsonObject json, String property) { JsonPrimitive primitive = getPrimitive(json, property); return primitive != null ? primitive.getAsInt() : null; } public static JsonPrimitive getPrimitive(JsonObject json, String property) { if (!json.has(property)) { return null; } JsonElement value = json.get(property); if (!value.isJsonPrimitive()) { throw BennuCoreDomainException.wrongJsonFormat(value, "primitive"); } return value.getAsJsonPrimitive(); } public static <T extends Object> T get(JsonObject json, String property, JsonBuilder ctx, Class<T> type) { if (!json.has(property)) { return null; } return ctx.create(json.get(property), type); } public static void put(JsonObject json, String property, String value) { if (value != null) { json.addProperty(property, value); } } public static void put(JsonObject json, String property, JsonElement value) { if (value != null) { json.add(property, value); } } }