簡體   English   中英

How to pass a list of integers as json data to a Spring Boot rest API without a custom intermediate object?

[英]How to pass a list of integers as json data to a Spring Boot rest API without a custom intermediate object?

How to pass a list of integers as json data to a Spring Boot rest API without creating a custom intermediate object? 我知道您可以創建一個 DTO 類型的 object 到 map 請求,我已經成功完成了該請求,但是有沒有辦法將它作為 ID 的集合/數組接收,而無需為此目的創建 ZA2F2ED4F8EBC2CBB4C21A29DC40AB61? 我試圖在沒有任何運氣的情況下做到這一點。 還嘗試將 map 放到 ID 引用的實體的集合中,也沒有任何運氣。 一種方法來做到這一點,或者更習慣於 Spring Boot 的替代方案將受到歡迎。

發送到端點的請求正文示例:

{
    "products": [
        "1",
        "2"
    ]
}

似乎 fps 的答案應該是合適的,但這里有一個警告
即使您的 class 被注釋為@RestController,在使用 Map 作為輸入時,您也需要使用@RequestBody(使用 POJO 可以避免此注釋)
波紋管代碼工作正常:

@PostMapping("/products")
@ResponseStatus(value = HttpStatus.OK)
public Object createProducts(@RequestBody Map<String, List<String>> input) {
    return input;
}

更敏捷的方法是使用 Jackson 類。 它不僅允許使用字符串,還允許使用所有“本機”json 結構。
您可以檢查 JsonNode.isNumber()、JsonNode.isTextual()、JsonNode.isArray()、JsonNode.isObject() 等。

@PostMapping("/products")
@ResponseStatus(value = HttpStatus.OK)
public Object createProducts(@RequestBody Map<String, JsonNode> input) {
    return input;
}

暫無
暫無

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

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