]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scl.data/src/org/simantics/scl/data/xml/JsonNodeHelper.java
JsonNode support with Data/Json
[simantics/platform.git] / bundles / org.simantics.scl.data / src / org / simantics / scl / data / xml / JsonNodeHelper.java
diff --git a/bundles/org.simantics.scl.data/src/org/simantics/scl/data/xml/JsonNodeHelper.java b/bundles/org.simantics.scl.data/src/org/simantics/scl/data/xml/JsonNodeHelper.java
new file mode 100644 (file)
index 0000000..9eda114
--- /dev/null
@@ -0,0 +1,28 @@
+package org.simantics.scl.data.xml;
+
+import java.io.IOException;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.SerializationFeature;
+
+public class JsonNodeHelper {
+
+       private static final ObjectMapper SORTED_MAPPER = new ObjectMapper();
+
+       static {
+           SORTED_MAPPER.configure(SerializationFeature.ORDER_MAP_ENTRIES_BY_KEYS, true);
+       }
+
+       public static String toJsonString(JsonNode node) throws JsonProcessingException {
+           final Object obj = SORTED_MAPPER.treeToValue(node, Object.class);
+           final String json = SORTED_MAPPER.writeValueAsString(obj);
+           return json;
+       }
+
+       public static JsonNode fromJsonString(String s) throws JsonProcessingException, IOException {
+               return SORTED_MAPPER.readTree(s);       
+       }
+       
+}