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;
+ }
+ }
+
+}