X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=net.mograsim.logic.model%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fmodel%2Futil%2FJsonHandler.java;h=0f151b98219abb459d4a57da3299f2c91ed17ec1;hb=95a225aed8eae0fc080440dba779abfdf867ff3d;hp=9cd9e8cca5d8b41a2e9dc28c9bf8e1a5c0ba078e;hpb=b5d8c2d71e27350ea7c9314e40df5bb0584271cd;p=Mograsim.git diff --git a/net.mograsim.logic.model/src/net/mograsim/logic/model/util/JsonHandler.java b/net.mograsim.logic.model/src/net/mograsim/logic/model/util/JsonHandler.java index 9cd9e8cc..0f151b98 100644 --- a/net.mograsim.logic.model/src/net/mograsim/logic/model/util/JsonHandler.java +++ b/net.mograsim.logic.model/src/net/mograsim/logic/model/util/JsonHandler.java @@ -10,10 +10,11 @@ import java.util.stream.Collectors; import com.google.gson.Gson; import com.google.gson.GsonBuilder; +import com.google.gson.JsonElement; public class JsonHandler { - private static Gson parser = new GsonBuilder().setPrettyPrinting().create(); + public final static Gson parser = new GsonBuilder().setPrettyPrinting().create(); public static T readJson(String path, Class type) throws IOException { @@ -36,11 +37,16 @@ public class JsonHandler public static T fromJson(String src, Class type) { - // TODO actually parse and compare version + // throw away legacy version line String rawJson = src.lines().dropWhile(s -> s.length() == 0 || s.charAt(0) != '{').collect(Collectors.joining()); return parser.fromJson(rawJson, type); } + public static T fromJsonTree(JsonElement src, Class type) + { + return parser.fromJson(src, type); + } + public static void writeJson(Object o, String path) throws IOException { try (FileWriter writer = new FileWriter(path)) @@ -51,6 +57,11 @@ public class JsonHandler public static String toJson(Object o) { - return String.format("mograsim version: %s\n%s", Version.jsonCompVersion.toString(), parser.toJson(o)); + return parser.toJson(o); + } + + public static JsonElement toJsonTree(Object o) + { + return parser.toJsonTree(o); } }