我怎样才能得到 json 索引作为键?

How can i get json indexes as keys?

api 的用户发送这样的 json:

{ "0": "3♥", "1": "5♣", "2": "4♣",“3”: “9♥”, … }

我正在尝试将每个索引 (3♥,5♣,4♣,9♥) 的值保存在列表中。

我现在只有 POST 方法,但我不知道如何阅读)或者我不知道是否需要使用其他类型的请求

 @RequestMapping(value="/start", method = RequestMethod.POST, consumes= "application/json" )
public String getData(@RequestBody ?? ) { }

提前致谢

试试下面

   @RequestMapping(value="/start", method = RequestMethod.POST, consumes= "application/json" )
    public String getData(@RequestBody HashMap<String, String> data) {
        List<String> result = new ArrayList<>();

        for (String val: data.values()){
        result.add(val);
        }
     }

我们将用户输入存储到 HashMap 中,然后在 for 循环中提取其值。您当然可以将 data.values() 返回的数据收集到 ArrayList 或您选择的任何集合中,以避免 for 循环。

如果您同时需要 keyvalue,则可以使用 EntrySet,如下所示

for (Map.Entry<String, String> entry : data.entrySet()) {
    String key = entry.getKey();
    String value = entry.getValue();
    // ...
}

试试这个:

  @PostMapping("/saveData")
  public ResponseEntity<String> saveData(@RequestBody Map<Integer, Object> data) {
    List<Object> values = new ArrayList<>();
    data.forEach(values::add);

    //Additonal code here, e.g. save

    return ResponseEntity.ok().build();
  }

@RequestBody Map<Integer, Object> 确保索引总是整数。值类型可以更改为字符串。 如果indexes不是int,会返回400 Bad Request。索引必须是正整数。

您还可以使用更长的符号来向列表中添加元素(可能更清楚): data.forEach((key, value) -> values.add(key, value));


For this payload:
{
    "0": "3♥",
    "1": "5♣",
    "2": "4♣",
    "3": "9♥"
}

这就是结果: