首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Spring RestTemplate的可选嵌套JSON对象

使用Spring RestTemplate的可选嵌套JSON对象
EN

Stack Overflow用户
提问于 2020-03-29 00:08:46
回答 1查看 476关注 0票数 0

在我尝试与Spring一起使用的RestTemplate中,我收到了一个可选字段,如下面的示例所示。这个可选字段是一个嵌套对象,我想使用一个嵌套类来映射它。

代码语言:javascript
复制
{
  "name": "John",
  "age": 30
}
代码语言:javascript
复制
{
  "name": "John",
  "age": 30,
  "car": {
    "year": 1984,
    "color": "red"
  }
}

我当前的类定义:

代码语言:javascript
复制
public class User {
    public class Car {
        @Getter
        @Setter
        public String color;

        @Getter
        @Setter
        public Integer year;
    }

    @Getter
    @Setter
    public String name;

    @Getter
    @Setter
    public Integer age;

    @Getter
    @Setter
    public Car car;
}

通过调用:

代码语言:javascript
复制
ResponseEntity<User> response = restTemplate.exchange("http://....", HttpMethod.POST, request, User.class);

我得到了以下异常:

com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot construct instance of '....User$Car' (although at least one Creator exists): can only instantiate non-static inner class by using default, no-argument constructor

如果节点存在于json中,如何使用nullCar类实例化car属性?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-29 00:15:53

你能试试下面更新后的类吗?更改是将内部类定义为静态类。

代码语言:javascript
复制
public  class User {
    public static class Car {
        @Getter
        @Setter
        public String color;

        @Getter
        @Setter
        public Integer year;
    }

    @Getter
    @Setter
    public String name;

    @Getter
    @Setter
    public Integer age;

    @Getter
    @Setter
    public Car car;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60903248

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档