前端以这种结构发送JSON:
{
"orderElement":
[
{
"product":
{
"id" : 3,
"name" : "product1",
"description" : "desc1",
"category":
{
"id":2,
"name" : "cat1"
},
"price" : 112},
"quantity" : 1
},
{
"product":
{
"id" : 4,
"name" : "product2",
"description" : "desc2",
"category":
{
"id" : 3,
"name" : "cat2"
},
price" : 353
},
"quantity" : 1
}
],
"user"
{
"id" : 109,
"lastName" : "a",
"firstName" : "a",
//rest of parameters
}
}
ts组件上使用的console.log返回包含所有数据的完整JSON。
但是,当将其发送到后端时,orderElement被清空了(向用户发送OK,在服务器端填充了OrderPlaceTime):
@Component
public class OrderConverter implements Converter<Order, OrderDTO> {
@Override
public Order convertToEntity(OrderDTO dto) {
Order order = new Order();
order.setId(dto.getId()); //ok
order.setUser(dto.getUser()); //ok
order.setOrderPlaceTime(now()); //ok
order.setOrderElements(dto.getOrderElements()); <--- this is null, set sets null in order
return order;
}
主要问题是:
1)尽管正确地从前端发送了它,但为何仍为空
2)如果需要任何特殊的方法来解析JSON中的数组,在这种情况下该如何做?
提前谢谢
答案 0 :(得分:0)
如JB Nizet所说:
可能是因为您的JSON属性被命名为orderElement,而您的DTO属性被命名为orderElements。
将“ orderElement”更改为“ orderElement s ”解决了该问题。
谢谢!