簡體   English   中英

如何將 JSON 請求轉換為特定格式 n spring 的列表?

[英]How to convert a JSON request into a list of specific format n spring?

我有一個這樣的請求 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 class。

嘗試在值列表上使用 zip 來創建包含每個元組的第 n 個元素的元組列表。

據我所知,您想要的結果是您的 DTO Class 的列表。

為此,您必須擁有像這樣的 DTO Class:

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

結果將是您的 DTO Class 的列表,如下所示:

        List<TestRequest> toReturn = new ArrayList<>();
        toReturn.add(TestRequest.builder()
                        .name("a")
                        .count(1)
                .build());
        toReturn.add(TestRequest.builder()
                        .name("b")
                        .count(2)
                .build());

結果請求如下:

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

您的問題是根據位置使用原始 JSON 文件中兩個不同集合的成員生成一個集合。 如果您嘗試在 Java 中執行,代碼將相當長。

在SPL中很容易做到這一點,開源的Java package。三行代碼就夠了:

圖片

SPL提供了Java調用的JDBC驅動,只需將上面的SPL腳本保存為convert.splx,在Java調用存儲過程即可:

…
Class.forName("com.esproc.jdbc.InternalDriver");
con= DriverManager.getConnection("jdbc:esproc:local://");
st = con.prepareCall("call convert()");
st.execute();
…

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM