diff --git a/xymanager_admin/pom.xml b/xymanager_admin/pom.xml index cc9ce76..c3e7ee9 100644 --- a/xymanager_admin/pom.xml +++ b/xymanager_admin/pom.xml @@ -16,6 +16,7 @@ war 1.8 + 2.16.2 @@ -40,6 +41,42 @@ 2.5.6 + + com.fasterxml.jackson.core + jackson-core + ${jackson.version} + + + com.fasterxml.jackson.core + jackson-annotations + ${jackson.version} + + + com.fasterxml.jackson.core + jackson-databind + ${jackson.version} + + + com.fasterxml.jackson.datatype + jackson-datatype-jdk8 + ${jackson.version} + + + com.fasterxml.jackson.datatype + jackson-datatype-jsr310 + ${jackson.version} + + + com.fasterxml.jackson.module + jackson-module-parameter-names + ${jackson.version} + + + com.fasterxml.jackson.dataformat + jackson-dataformat-yaml + ${jackson.version} + + com.shxy xymanager_framework diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/util/JSONProcessor.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/util/JSONProcessor.java new file mode 100644 index 0000000..b86682c --- /dev/null +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/util/JSONProcessor.java @@ -0,0 +1,87 @@ +package com.shxy.xymanager_common.util; + +import com.fasterxml.jackson.annotation.JsonInclude.Include; +import com.fasterxml.jackson.core.JsonParseException; +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.fasterxml.jackson.databind.MapperFeature; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException; + +import java.io.File; +import java.io.IOException; +import java.util.Map; + +public class JSONProcessor { + + + public Map fromJSON2Map(String json) throws JsonParseException, JsonMappingException, IOException { + ObjectMapper mapper = new ObjectMapper(); + @SuppressWarnings("unchecked") + Map productMap = mapper.readValue(json, Map.class); + return productMap; + } + + public Map fromJSON2Map(Object obj) throws JsonParseException, JsonMappingException, IOException { + ObjectMapper mapper = new ObjectMapper(); + @SuppressWarnings("unchecked") + Map productMap = mapper.convertValue(obj, Map.class); + return productMap; + } + + public String buildJSONFromJSONObject(Object obj) { + String jsonInString = null; + ObjectMapper mapper = new ObjectMapper(); + try { + mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + mapper.configure(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true); + mapper.setSerializationInclusion(Include.NON_NULL); + jsonInString = mapper.writeValueAsString(obj); + } catch (Exception e) { +// LOG.error("JSON transform failed. ", e); + } + return jsonInString; + } + + public String buildJSONFromJSONObject(Object obj, boolean prettyPrinter) { + String jsonInString = null; + ObjectMapper mapper = new ObjectMapper(); + try { + mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + mapper.configure(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true); + mapper.setSerializationInclusion(Include.NON_NULL); + if (prettyPrinter) { + jsonInString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(obj); + } else { + jsonInString = mapper.writeValueAsString(obj); + } + } catch (Exception e) { +// LOG.error("JSON transform failed. ", e); + } + return jsonInString; + } + + public T buildJSONObjectFromJSON(String json, Class clazz) throws Exception { + ObjectMapper mapper = new ObjectMapper(); + try { + mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + return mapper.readValue(json, clazz); + } catch (UnrecognizedPropertyException e) { + throw new Exception(e.getPropertyName(), e); + } catch (Exception e) { + throw new Exception("JSON Object transform failed. ", e); + } + } + + public T buildJSONObjectFromJSON(File file, Class clazz) throws Exception { + ObjectMapper mapper = new ObjectMapper(); + try { + mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + return mapper.readValue(file, clazz); + } catch (UnrecognizedPropertyException e) { + throw new Exception(e.getPropertyName(), e); + } catch (Exception e) { + throw new Exception("JSON Object transform failed. ", e); + } + } +} diff --git a/xymanager_common/src/main/java/com/shxy/xymanager_common/util/JSONUtil.java b/xymanager_common/src/main/java/com/shxy/xymanager_common/util/JSONUtil.java new file mode 100644 index 0000000..be3de5f --- /dev/null +++ b/xymanager_common/src/main/java/com/shxy/xymanager_common/util/JSONUtil.java @@ -0,0 +1,47 @@ +/** + * @author roger - Sep 9, 2016 + * @version 2.0 + * file name: JSONProcessor.java + * package name: com.roam2free.rest.util + */ + +package com.shxy.xymanager_common.util; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.SerializationFeature; + +import java.io.File; +import java.io.IOException; +import java.util.Map; + + +public class JSONUtil { + + private static JSONProcessor jSONProcessor = new JSONProcessor(); + + public static String object2Json(Object obj) { + return jSONProcessor.buildJSONFromJSONObject(obj); + } + + public static String object2Json(Object obj, boolean prettyPrinter) { + return jSONProcessor.buildJSONFromJSONObject(obj, prettyPrinter); + } + + public static T json2Object(String json, Class clazz) throws Exception { + return jSONProcessor.buildJSONObjectFromJSON(json, clazz); + } + + public static T file2Object(File file, Class clazz) throws Exception { + return jSONProcessor.buildJSONObjectFromJSON(file, clazz); + } + + public static Map object2Map(Object obj) { + try { + return jSONProcessor.fromJSON2Map(obj); + } catch (IOException e) { + return null; + } + } + +}