使用GSON时,忽略特定的JSON属性

时间:2015-08-31 22:11:23

标签: java json gson

我正在使用谷歌的GSON。我有一个像这样的JSON数据文件:

{"NAME":"Joe",
"AGE":"18",
"DATA":[0,0,0,0,0,...]}

DATA是一个非常非常大的数组。

我想阅读JSON文件,但省略特定属性被解析。在上述情况下,我想省略阅读DATA,因此会收到仅包含JsonObjectNAME的{​​{1}}。

我有成千上万的这些文件,我需要阅读每个文件的AGENAME字段。很明显,我不需要解析AGE,考虑到我需要处理的文件数量,我认为这是浪费大量资源。

可以使用Google的GSON实现吗?

1 个答案:

答案 0 :(得分:2)

是的,它可以。 GSON支持注释。

创建一个简单的POJO,如果你还没有。

public class Person {
    @Expose @SerializedName("NAME")
    public String name;
    @Expose @SerializedName("AGE")
    public String age; // because your snippet showed "18" in quotes

    // getters and setters, if you like
}

您应该编辑您的课程并正确使用@Expose注释。

当您实例化Gson对象以将JSON转换为Person对象时,请使用:

Gson gson = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create();

这样,Gson将知道要查看哪些字段以及忽略哪些字段。

编辑: Person中的属性为public,因为我假设您不会使用getter和setter。