Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将JSON对象部分解析为Java对象_Java_Json_Gson - Fatal编程技术网

如何将JSON对象部分解析为Java对象

如何将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输出文件,作为响应,但我只想解析我逻辑中的一些字段

例如,
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