【问题标题】:How to Map data from JSON Array of Objects to My List如何将 JSON 对象数组中的数据映射到我的列表
【发布时间】:2020-09-24 11:51:25
【问题描述】:

我无法映射到数据。

我正在发送以下 JSON 以映射到我的列表对象

[{
    "Student": {
        "name": "Ram"
    },
    "Address": {
        "text": "6666 SE 3301"

    }
}]

这是学生课

@Data
public class Student {

        private String name;

}

这是地址类

@Data
public class Address {

    private String text;

}

这是 AllDetails 类

@Data
public class AllDetails {

    private Student student;
    private Address text;
}

这是我接受数据的方式

@PostMapping(value = AllDetails)
    public @ResponseBody String maptoObj(@RequestBody List<AllDetails> details) throws Exception {


        ObjectMapper objectMapper = new ObjectMapper();
        objectMapper.configure(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true);
        List<AllDetails> allDet = objectMapper.readValue(details,  AllDetails[].class);

        return "";
    }

【问题讨论】:

    标签: java json spring-boot rest


    【解决方案1】:

    试试这个。这应该有效。

    public class AllDetails {
        @JsonProperty("Student")
        private Student student;
        @JsonProperty("Address")
        private Address address;
    }
    

    您使用的变量名称:学生和地址。
    但在 Json 中是学生和地址。

    使用@JsonProperty 告诉杰克逊它应该在 json 中查找的变量名是什么

    【讨论】:

      【解决方案2】:

      类似的东西

      ...
      ObjectMapper objectMapper = new ObjectMapper();
      objectMapper.configure(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true);
      List<AllDetails> allDet = objectMapper.readValue(details, new TypeReference<>() {
              });
      ...
      
      
      
      @Data
      class AllDetails {
          @JsonAlias("Student")
          private Student student;
          @JsonAlias("Address")
          private Address address;
      
      }
      
      @Data
      class Student {
      
          private String name;
      }
      
      @Data
      class Address {
      
          private String text;
      
      }
      

      【讨论】:

        猜你喜欢
        • 2021-09-22
        • 2021-05-18
        • 1970-01-01
        • 1970-01-01
        • 2019-03-21
        • 2019-02-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多