我正在使用谷歌的GSON。我有一个像这样的JSON数据文件:
{"NAME":"Joe",
"AGE":"18",
"DATA":[0,0,0,0,0,...]}
DATA
是一个非常非常大的数组。
我想阅读JSON文件,但省略特定属性被解析。在上述情况下,我想省略阅读DATA
,因此会收到仅包含JsonObject
和NAME
的{{1}}。
我有成千上万的这些文件,我需要阅读每个文件的AGE
和NAME
字段。很明显,我不需要解析AGE
,考虑到我需要处理的文件数量,我认为这是浪费大量资源。
可以使用Google的GSON实现吗?
答案 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。