我怎样才能得到 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
循环。
如果您同时需要 key
和 value
,则可以使用 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♥"
}
这就是结果:
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
循环。
如果您同时需要 key
和 value
,则可以使用 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♥"
}
这就是结果: