好吧,我有一个json看起来像这样:

{count:xxx, important:[{...}]}


我只关心的是重要对象。有什么我可以使用自定义反序列化器执行的操作,还是可以让GSON将重要的json对象反序列化的任何操作?

同样,我希望反序列化对象的外观如下所示:

List<Important> = Gson.fromJson(arg0, new TypeToken<ArrayList<Important>>(){}.getType() );

最佳答案

是的,您可以使用Gson库中的JsonParser类将其作为JsonObject读取。然后,拉出所需的内部对象,并使用Gson为其填充Java类。

例:

Reader jsonReader =
                new BufferedReader(
                new InputStreamReader(getIStream("myFile.json")));
JsonParser parser = new JsonParser();
JsonObject top = parser.parse(jsonReader).getAsJsonObject();

JsonElement importantEl = top.get("important");

//Parse the important element into whatever structure you're creating
Gson gson = new Gson();
List<Important> important
    = Gson.fromJson(importantEl, new TypeToken<ArrayList<Important>>(){}.getType() );

10-05 21:24
查看更多