diff options
author | 2017-06-09 03:19:04 +0300 | |
---|---|---|
committer | 2017-06-09 03:19:04 +0300 | |
commit | ed64b5edff15e702493df21aa3230b81593e6133 (patch) | |
tree | a4cb01fdaccc34930a8db403a3097c0d1e40914b /catalog-dao/src/main/java/org/openecomp/sdc/be/dao/jsongraph/utils/JsonParserUtils.java | |
parent | 280f8015d06af1f41a3ef12e8300801c7a5e0d54 (diff) |
[SDC-29] catalog 1707 rebase commit.
Change-Id: I43c3dc5cf44abf5da817649bc738938a3e8388c1
Signed-off-by: Michael Lando <ml636r@att.com>
Diffstat (limited to 'catalog-dao/src/main/java/org/openecomp/sdc/be/dao/jsongraph/utils/JsonParserUtils.java')
-rw-r--r-- | catalog-dao/src/main/java/org/openecomp/sdc/be/dao/jsongraph/utils/JsonParserUtils.java | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/catalog-dao/src/main/java/org/openecomp/sdc/be/dao/jsongraph/utils/JsonParserUtils.java b/catalog-dao/src/main/java/org/openecomp/sdc/be/dao/jsongraph/utils/JsonParserUtils.java new file mode 100644 index 0000000000..a7fe34071d --- /dev/null +++ b/catalog-dao/src/main/java/org/openecomp/sdc/be/dao/jsongraph/utils/JsonParserUtils.java @@ -0,0 +1,66 @@ +package org.openecomp.sdc.be.dao.jsongraph.utils; + +import java.io.IOException; +import java.util.Map; + +import org.codehaus.jackson.JsonGenerationException; +import org.codehaus.jackson.map.DeserializationConfig; +import org.codehaus.jackson.map.JsonMappingException; +import org.codehaus.jackson.map.ObjectMapper; +import org.codehaus.jackson.map.SerializationConfig.Feature; +import org.codehaus.jackson.map.annotate.JsonSerialize; +import org.codehaus.jackson.type.JavaType; +import org.codehaus.jackson.type.TypeReference; +import org.openecomp.sdc.be.datatypes.tosca.ToscaDataDefinition; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class JsonParserUtils { + private static ObjectMapper mapper = new ObjectMapper(); + private static Logger logger = LoggerFactory.getLogger(JsonParserUtils.class.getName()); + + + public static <T> String jsonToString(T elementToRepresent) throws IOException, JsonGenerationException, JsonMappingException { + + + mapper.configure(Feature.FAIL_ON_EMPTY_BEANS, false); + mapper.setSerializationInclusion(JsonSerialize.Inclusion.NON_NULL); + return mapper.writeValueAsString(elementToRepresent); + } + + public static Map<String, Object> parseToJson(String json) { + Map<String, Object> object = null; + if (json == null || json.isEmpty()) { + return null; + } + mapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false); + mapper.configure(Feature.FAIL_ON_EMPTY_BEANS, false); + mapper.setSerializationInclusion(JsonSerialize.Inclusion.NON_NULL); + TypeReference<Map<String, Object>> typeRef = new TypeReference<Map<String, Object>>() { + }; + + try { + object = mapper.readValue(json, typeRef); + } catch (Exception e) { + logger.debug("Failed to parse json {}", json, e); + } + return object; + } + public static <T extends ToscaDataDefinition> Map<String, T> parseToJson(String json, Class <T> clazz) { + Map<String, T> object = null; + if (json == null || json.isEmpty()) { + return null; + } + mapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false); + mapper.configure(Feature.FAIL_ON_EMPTY_BEANS, false); + mapper.setSerializationInclusion(JsonSerialize.Inclusion.NON_NULL); + JavaType type = mapper.getTypeFactory().constructMapType(Map.class, String.class, clazz); + + try { + object = mapper.readValue(json, type); + } catch (Exception e) { + logger.debug("Failed to parse json {}", json, e); + } + return object; + } +} |