我正在使用谷歌的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.