X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=net.mograsim.logic.model%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fmodel%2Futil%2FJsonHandler.java;h=20491ce58f27ab3c278a06d1d7f1b196da9da1f7;hb=8bed58cd47f4e53a0a83e066d38864aa6875502f;hp=8dffc94074e0b53cbb9b877749ced11dae1d1696;hpb=3977f16649531ca3ba345c9cd5ec365e0b804783;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 8dffc940..20491ce5 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 @@ -6,6 +6,7 @@ import java.io.FileWriter; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; +import java.nio.charset.StandardCharsets; import java.util.stream.Collectors; import com.google.gson.Gson; @@ -14,8 +15,7 @@ import com.google.gson.JsonElement; public class JsonHandler { - // TODO: write versions differently - 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 { @@ -30,7 +30,8 @@ public class JsonHandler */ public static T readJson(InputStream input, Class type) throws IOException { - try (InputStreamReader reader = new InputStreamReader(input); BufferedReader bf = new BufferedReader(reader)) + try (InputStreamReader reader = new InputStreamReader(input, StandardCharsets.UTF_8); + BufferedReader bf = new BufferedReader(reader)) { return fromJson(bf.lines().collect(Collectors.joining("\n")), type); } @@ -38,11 +39,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)) @@ -53,11 +59,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); } -} +} \ No newline at end of file