我正在尝试解析两个 json 文件并将它们转换为Map<String, Object>
使用 gson,但是在使用 gson 进行上述转换时,我得到 com.google.gson.stream.MalformedJsonException: Unterminated object exception。
我有我的 json 文件,如下所示:
{"obj":
{
"thumbnail":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMAAAACQCAYAAABeUmTwAAAW==",
"file":"2",
"CreatedOn":"Mon May 13 16:24:52 IST 2019"
},
"Status":"Created",
"Modified":"false",
"Tags":{"Business":"No","Entertainment":"Yes"}
}
问题是如果json对象或“:”中有一些空间,那么它会抛出那个错误,我也尝试将JsonReader设置为Lenient,但这也没有帮助
我已经尝试使用以下代码:
JSONParser parser1 = new JSONParser(new FileReader("D:/New Folder/2.json"));
Object obj1 = parser1.parse();
JsonReader reader1 = new JsonReader(new StringReader(obj1.toString()));
reader1.setLenient(true);
Type mapType = new TypeToken<Map<String, Object>>(){}.getType();
Map<String, Object> firstMap = gson.fromJson(reader1, mapType);
它向我抛出了以下异常
Exception in thread "main" com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Unterminated object at line 1 column 22 path $..thumbnail
at com.google.gson.Gson.fromJson(Gson.java:942)
at com.cts.ciqd.gitpoc.Git.Poc.test.FlatMapUtil.main(FlatMapUtil.java:85)
Caused by: com.google.gson.stream.MalformedJsonException: Unterminated object at line 1 column 22 path $..thumbnail
at com.google.gson.stream.JsonReader.syntaxError(JsonReader.java:1568)
at com.google.gson.stream.JsonReader.doPeek(JsonReader.java:491)
at com.google.gson.stream.JsonReader.hasNext(JsonReader.java:414)
at com.google.gson.internal.bind.ObjectTypeAdapter.read(ObjectTypeAdapter.java:69)
at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.read(TypeAdapterRuntimeTypeWrapper.java:41)
at com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.read(MapTypeAdapterFactory.java:187)
at com.google.gson.internal.bind.MapTypeAdapterFactory$Adapter.read(MapTypeAdapterFactory.java:145)
at com.google.gson.Gson.fromJson(Gson.java:927)
... 1 more
我还应该做些什么来克服异常吗?