【发布时间】: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 相差甚远。同样,如果您可以展示反序列化的具体示例(而不仅仅是使用您未告诉我们的库从服务器中某处进行方法声明),这将更容易为您提供帮助。