JSON分析错误:使用spring RestTemplate.exAnge时无法反序列化

JSON分析错误:使用spring RestTemplate.exAnge时无法反序列化,json,spring,parsing,resttemplate,Json,Spring,Parsing,Resttemplate,我不熟悉JSON和spring。能够编写使用REST Web服务的简单示例。但当我应用于实时场景时,JSON是嵌套的,我无法控制更改结构 下面的代码给了我解析错误。无法反序列化pg.domain.LookupDo[]的实例,该实例超出了起始\u对象标记 LookupDo[] lookupDos = template.exchange(url, HttpMethod.GET, request, LookupDo[].class).getBody(); 如何构造域对象 @JsonIgnorePr

我不熟悉JSON和spring。能够编写使用REST Web服务的简单示例。但当我应用于实时场景时,JSON是嵌套的,我无法控制更改结构

下面的代码给了我
解析错误。无法反序列化pg.domain.LookupDo[]的实例,该实例超出了起始\u对象标记

LookupDo[] lookupDos =  template.exchange(url, HttpMethod.GET, request, LookupDo[].class).getBody();
如何构造域对象

@JsonIgnoreProperties
public class LookupDo {

    private String companyCode;
    private String plant;
    private String category;
    private String value;
    private String descr;

您需要将类与JSON结构相匹配

Response res = template.exchange(url, HttpMethod.GET, request, Response.class).getBody();
LookupDo[] lookupDos = res.getD().getResults();

public class Response{
   private Data d;
   ...
}
public class Data{
   private LookupDo[] results;
   ...
}

谢谢你的回复。但不知何故,数据没有加载,虽然没有解析异常,但CompanyCode、Plant等总是为空。为了检查是否添加了元数据(请参见上面我的json对象),尽管它不是必需的,但我添加了一个类“metadata”,并加载了该部分。但不是CompanyCode和Plant等。我已经花了足够的时间,确保嵌套对象与Json对齐。唯一值得怀疑的是变量情况。Json在CompanyCode中使用大写C。在java中,我得到了公司代码。不确定这是否是个问题。我尝试了这两种情况,但都不起作用。请确保您对类和
companyCode
->
companyCode
capital使用getter setter和构造函数,第一个在jsonSorry中仍然不起作用。通过调试窗口查看屏幕截图问题是json中的大写camelcase,我认为,您可以使用json中的小写camelcase作为您的类进行测试。谢谢。终于奏效了。谢谢。对你是对的。最后,我与服务提供商(准备json)进行了交谈,要求他将第一个字符作为小写字母,最后终于成功了。但不知何故,我不相信我们的做法。(1) 有这么多嵌套对象(2)强制使用json属性first char小写。必须有更好/更清洁的解决方案。不管怎么说,它成功了。谢谢你的时间,罗诺