我们如何将json发送到控制器并根据java中的键进行迭代?

Ayu*_*yal 1 java spring-mvc

以下是我的JSON:

{
    "key1" : "10.5",
    "key2" : "20.5",
    "key3" : "10.5",
    "key4" : "20.5",
    "key5" : "10.5"
}
Run Code Online (Sandbox Code Playgroud)

我想在调用post service时将这个Json发送到控制器类,我想根据类中的键迭代json.我们如何在课堂上收到json以及我们如何迭代.

我做了以下:

@PostMapping("/api/v1/save")
public String save_commodities_user_predict_data(@RequestBody String jsonData) {

    System.out.println("jsonData:"+jsonData); 

}
Run Code Online (Sandbox Code Playgroud)

在控制台中,我得到低于输出:

jsonData:{
    "key1" : "10.5",
    "key2" : "20.5",
    "key3" : "10.5",
    "key4" : "20.5",
    "key5" : "10.5"
}
Run Code Online (Sandbox Code Playgroud)

现在,我如何迭代jsonData并根据我的java类中的键获取值?

请澄清.

Adi*_*xit 6

将参数类型更改为Map<String, String>迭代并迭代地图.如果有一个原因你不能这样做,你将不得不将字符串解析为json.

@PostMapping("/api/v1/save")
public String save_commodities_user_predict_data(@RequestBody Map<String, String> jsonData) {

    for (Entry<String,String> pair : jsonData.entrySet()){
        //iterate over the pairs
        System.out.println(pair.getKey()+" "+pair.getValue());
    }
}
Run Code Online (Sandbox Code Playgroud)