【发布时间】:2019-11-11 02:20:09
【问题描述】:
前端以这种结构发送 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 被清空(用户被发送正常,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里面的数组,这种情况下怎么做?
提前谢谢你
【问题讨论】:
-
可能是因为您的 JSON 属性名为
orderElement,而您的 DTO 属性名为orderElements。 -
哈哈。太棒了,这有帮助。谢谢!吸取的教训:)
-
@Doomsay 请提供它作为答案。
标签: json hibernate spring-boot spring-data