Gson只关注内在的对象

时间:2012-10-10 17:43:20

标签: java gson

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

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

我所关心的只是重要的对象。有什么我可以用自定义反序列化器或任何我可以让GSON反序列化那个重要的json对象的东西吗?

我希望反序列化对象看起来像这样:

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

1 个答案:

答案 0 :(得分:3)

是的,您可以使用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() );