X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=plugins%2Fnet.mograsim.logic.model%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fmodel%2Futil%2FJsonHandler.java;h=4c49104b70dca2f6093fcd8d5f681681bf407b96;hb=7908fec28b61e5911bf6523a3c10cd3a31dc95e6;hp=d2d6de317ea08f19dfb982f0a5a7edd56e547970;hpb=ad145f3c3d843239d273cee29683e32ba04eb0d2;p=Mograsim.git diff --git a/plugins/net.mograsim.logic.model/src/net/mograsim/logic/model/util/JsonHandler.java b/plugins/net.mograsim.logic.model/src/net/mograsim/logic/model/util/JsonHandler.java index d2d6de31..4c49104b 100644 --- a/plugins/net.mograsim.logic.model/src/net/mograsim/logic/model/util/JsonHandler.java +++ b/plugins/net.mograsim.logic.model/src/net/mograsim/logic/model/util/JsonHandler.java @@ -13,9 +13,12 @@ import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.JsonElement; +import net.mograsim.logic.core.types.BitVector; + public class JsonHandler { - public final static Gson parser = new GsonBuilder().setPrettyPrinting().create(); + public final static Gson parser = new GsonBuilder().registerTypeAdapter(BitVector.class, new BitVectorAdapter()).setPrettyPrinting() + .create(); public static T readJson(String path, Class type) throws IOException { @@ -39,14 +42,12 @@ public class JsonHandler public static T fromJson(String src, Class type) { - // throw away legacy version line, but keep line numbers - int linesBeforeJsonStart = (int) src.lines().takeWhile(s -> s.length() == 0 || s.charAt(0) != '{').count(); - String rawJson; - if (linesBeforeJsonStart == 0) - rawJson = src; - else - rawJson = "\n".repeat(linesBeforeJsonStart) + src.lines().skip(linesBeforeJsonStart).collect(Collectors.joining("\n")); - return parser.fromJson(rawJson, type); + return parser.fromJson(src, type); + } + + public static T fromJson(JsonElement json, Class type) + { + return parser.fromJson(json, type); } public static T fromJsonTree(JsonElement src, Class type)