java – 在使用GSON时忽略特定的JSON属性

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

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

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

我想阅读JSON文件,但省略了解析的特定属性.在上面的例子中,我想省略读取DATA,因此接收一个只包含NAME和AGE的JsonObject.

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

这可以使用谷歌的GSON实现吗?

最佳答案 是的,它可以. 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中的属性是公共的,因为我假设你不会使用getter和setter.

点赞