【问题标题】:Java List<> of another Pojo object not getting initialised另一个 Pojo 对象的 Java List<> 未初始化
【发布时间】:2021-06-03 06:43:02
【问题描述】:

我有一个 Pojo 类,其中有以下字段:当我传递日期时,它显示为 null。

import com.fasterxml.jackson.annotation.JsonProperty;
public class ParentPojo {

@JsonProperty("ChildPojoExample")
private List<ChildPojo> child;

public List<ChildPojo> getChild() {
    return child;
}

public void setChild(List<ChildPojo> child) {
    this.child= child;
}

public String toString() {
        StringBuilder builder = new StringBuilder();
        builder.append("ParentPojo [ChildPojo=");
        builder.append(child);
        builder.append("]");
        return builder.toString();
}



public class ChildPojo{

    private String First;

    private String Second;

    private Double Third;

    public String getFirst() {
        return First;
    }

    public void setFirst(String first) {
        First= first;
    }

    public String getSecond() {
        return Second;
    }

    public void setSecond(String second) {
        Second= second;
    }

    public Double getThird() {
        return Third;
    }

    public void setThird(Double third) {
        Third= third;
    }

    @Override
    public String toString() {
        StringBuilder builder = new StringBuilder();
        builder.append("ChildPojo [First=");
        builder.append(First);
        builder.append(", Second=");
        builder.append(Second);
        builder.append(", Third=");
        builder.append(Third);
        builder.append("]");
        return builder.toString();
    }

}

请求:

{
"ChildPojoExample": [{
"First": "test1",
"Second": "test2",
"Third": 0.024
 }]
}

我得到以下请求 Pojo 对象:

ParentPojo =[ChildPojo [First=null, Second=null, Third=null]]

我无法弄清楚为什么值没有正确进入对象,而是 null 来了。

我正在通过以下方式转换请求:

@RequestMapping(method = RequestMethod.POST, value = "/APIName")
    @ResponseBody
    public Response methodName(@RequestBody ParentPojo request) throws IOException {
        Loggers..info("ParentPojo request : {}  ", request);
}

【问题讨论】:

  • 您已经展示了 POJO 的创建,但我们不知道它是如何反序列化的。究竟是什么收到了这个请求?您能否提供一个明确执行反序列化的minimal reproducible example
  • 展示如何将请求-响应转换为对象。基本上你的fastxml转换
  • @JonSkeet 提供了缺失的部分
  • @RajnishMishra 提供了缺失的部分
  • minimal reproducible example 相差甚远。同样,如果您可以展示反序列化的具体示例(而不仅仅是使用您未告诉我们的库从服务器中某处进行方法声明),这将更容易为您提供帮助。

标签: java json pojo fasterxml


【解决方案1】:

这是因为ChildPojo 类中的变量名的大小写。它期望变量名以小写字母开头

你可以使用JsonProperty注解来修复它。

@JsonProperty("First")
private String First;

@JsonProperty("Second")
private String Second;

@JsonProperty("Third")
private Double Third;

【讨论】:

    猜你喜欢
    • 2016-12-18
    • 1970-01-01
    • 2017-01-02
    • 2012-11-03
    • 2015-05-17
    • 2022-11-20
    • 2016-05-30
    • 2012-06-30
    • 1970-01-01
    相关资源
    最近更新 更多