【问题标题】:How to read Array from JSON on backend如何在后端从 JSON 读取数组
【发布时间】: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


【解决方案1】:

正如 JB 尼泽所说:

可能是因为您的 JSON 属性名为 orderElement,而您的 DTO 属性名为 orderElements。

将“orderElement”更改为“orderElements”解决了这个问题。

谢谢!

【讨论】:

    猜你喜欢
    • 2019-10-24
    • 2018-01-24
    • 2021-12-13
    • 1970-01-01
    • 2022-01-01
    • 2018-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多