java - spring中如何将JSON请求转换为特定格式的列表?

标签 java spring spring-boot arraylist

我有一个像这样的请求 JSON 列表:

[
 {
  Id: 0,
  values: [a, b, c, d]
 },
 {
  Id: 1,
  values: [1, 2, 3, 4]
 },
 .
 .
 .
]

如何将其转换为这样的列表:

[
 {
  Name: a,
  Count: 1
 },
 {
  Name: b,
  Count: 2
 }
 {
  Name: c,
  Count: 3
 }
 {
  Name: d,
  Count: 4
 }
]

我有一个由名称和计数属性组成的 dto 类。

最佳答案

据我所知,您想要的结果是您的 DTO 类的列表。

为此,您必须有一个像这样的 DTO 类:

public class TestRequest {
    private String name;
    private Integer count;
}

原始 DTO 类的示例可能是:

public class TestRequestDTO {
    private Integer id;
    private List<String> values;
}

结果将是您的 DTO 类的列表,如下所示:

        List<TestRequestDTO> dtoClassList = new ArrayList<>();
        List<TestRequest> toReturn = new ArrayList<>();
        
        for (int i = 0; i < dtoClassList.size(); i++) {
            for (int j = 0; j < dtoClassList.get(i).getValues().size(); j++) {
                if (i+1 != dtoClassList.size()) {
                    toReturn.add(TestRequest.builder()
                            .name(dtoClassList.get(i).getValues().get(j))
                            .count(dtoClassList.get(i + 1).getValues().get(j))
                            .build());
                }
            }
        }

生成的请求如下:

[
    {
        "name": "a",
        "count": 1
    },
    {
        "name": "b",
        "count": 2
    }
]

关于java - spring中如何将JSON请求转换为特定格式的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70978408/

相关文章:

java - 为 JPanel 内部的 JPanel 元素着色

java - 我如何处理 Java 中的 StackOverflowError?

java - spring boot 一对一映射单向

java - Spring 启动: MockMvc returning strange responses

spring - 如何在 Spring Boot 应用程序中使用禁用连接池?

java - Spring Boot Maven 项目的垃圾收集从不运行

java - Spring数据MongoDB : Query by class instance

html - 如何设置 thymeleaf th :field value from other variable

javascript - 下拉列表更改时更改表内容

java - 当根 URL 命中时,Wildfly 上的 Spring 不会渲染 index.html