Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.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/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
Java 不使用包装器类解析JSON的特定字段_Java_Json_Resttemplate_Jackson Databind - Fatal编程技术网

Java 不使用包装器类解析JSON的特定字段

Java 不使用包装器类解析JSON的特定字段,java,json,resttemplate,jackson-databind,Java,Json,Resttemplate,Jackson Databind,Java对象: public class Foo { @JsonProperty("name") private String name; @JsonProperty("surname") private String surname; // getters + setters } JSON: API调用: return restTemplate.getForEntity(requestUrl, Foo[].class).getBody(); 是否可以在不创建额外包装器类的情况下

Java对象:

public class Foo {
 @JsonProperty("name")
 private String name;
 @JsonProperty("surname")
 private String surname;

 // getters + setters
}
JSON:

API调用:

return restTemplate.getForEntity(requestUrl, Foo[].class).getBody();
是否可以在不创建额外包装器类的情况下解析“数据”数组?我尝试在Java类的顶部添加
@JsonRootName(“数据”)
注释,但没有成功。

您可以尝试:

import org.json.*;

JSONObject obj = new JSONObject(" .... ");
String name = obj.getJSONObject("data").getString("name");

看起来像是使用了Jackson,而不是org.jsonGson可以很容易地做到这一点。这看起来更复杂-添加数百个类进行解析不是我想要的数百个?这是一个TypeAdapterFactory,Jackson本身就有自定义反序列化功能。Java是面向对象的,那么您对类有什么看法呢?
import org.json.*;

JSONObject obj = new JSONObject(" .... ");
String name = obj.getJSONObject("data").getString("name");