如何将JSON对象部分解析为Java对象
我正在处理一个大的json输出文件,作为响应,但我只想解析我逻辑中的一些字段 例如,如何将JSON对象部分解析为Java对象,java,json,gson,Java,Json,Gson,我正在处理一个大的json输出文件,作为响应,但我只想解析我逻辑中的一些字段 例如,JSON如下所示 { "lastName":"Smith", "address":{ "streetAddress":"21 2nd Street", "city":"New York", "state":"NY", "postalCode":10021 }, "age":25, "phoneNumbers":[ { "type":"ho
JSON
如下所示
{
"lastName":"Smith",
"address":{
"streetAddress":"21 2nd Street",
"city":"New York",
"state":"NY",
"postalCode":10021
},
"age":25,
"phoneNumbers":[
{
"type":"home", "number":"212 555-1234"
},
{
"type":"fax", "number":"212 555-1234"
}
],
"firstName":"John"
}
我已经创建了必要的JAVA类,并使用GSON
将JSON
对象映射到JAVA对象。因为,上面的JSON
只是一个示例,在我的例子中,我有一个大的示例,它生成了大约15个类
目前,我必须创建以下类文件:
- Employee.class
- Address.class
- PhoneNumber.class
我希望避免使用GSON创建PhoneNumber.class及其嵌套类
基本上,我的查询就像上面的json一样,我不想要phoneNumbers
及其内部对象
,所以我怎么能忽略这些字段,这样我就必须构造更少的Java类文件,而且它仍然映射到Java对象
因此,我希望避免为
PhoneNumbers
字段和PhoneNumbers中的嵌套字段创建类。正如建议的那样,Employee
和Address
类就是您所需要的:
公共类员工{
私有字符串firstName,lastName;
私人互联网;
私人地址;
}
公共类地址{
私人字符串地址,城市,州;
私人邮政编码;
}
new Gson().fromJson(json,Employee.class)
,其中json
是原始的json字符串,应该执行您想要的操作。如果不共享您的代码,很难说为什么它对您不起作用。然后不要创建PhoneNumber
类,Gson将自动忽略phoneNumbers
json字段。我看不出有什么问题。你有没有试着把它从你的课堂上移除,然后发生什么?那对你来说会快得多,我想如果你不想创建类,“@IgnoreUnknown”和“@Ignore”注释会起作用,那么你可以使用HashMapjob@Andreas我以前已经尝试过这种方法,但得到的异常是HttpMessageDataableException无法读取JSON:Unrecogned字段电话号码@JsonIgnoreProperties
是Jackson
注释,而不是Gson
!请确定您使用的是哪个JSON库,@Andreas的建议应该适用于您使用的是Gson
!