Как мы отправляем json в контроллер и выполняем итерацию на основе ключа в Java? - PullRequest
0 голосов
/ 06 декабря 2018

Ниже приведен мой JSON:

{
    "key1" : "10.5",
    "key2" : "20.5",
    "key3" : "10.5",
    "key4" : "20.5",
    "key5" : "10.5"
}

Я хочу отправить этот Json в класс контроллера при вызове почтовой службы, и я хочу повторить json на основе ключа в классе.Как мы получаем json в нашем классе и как мы итерируем.

Я сделал следующее:

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

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

}

В консоли я получаю вывод ниже:

jsonData:{
    "key1" : "10.5",
    "key2" : "20.5",
    "key3" : "10.5",
    "key4" : "20.5",
    "key5" : "10.5"
}

Теперь, как мне перебрать jsonData и получить значение на основе ключа в моем классе java?

Пожалуйста, уточните.

Ответы [ 3 ]

0 голосов
/ 06 декабря 2018

Эй, ты можешь, ты, библиотека GSON или Джексон.Сначала создайте Бины, которые имеют те же свойства, что и ваш Json, например:

{"name": "John", "age": "24"}

class Person {
 private String name;
 private String age;

//getters and setters 
}

Но выможете найти больше информации в документации к библиотекам

0 голосов
/ 06 декабря 2018

Измените тип параметра на 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());
    }
}
0 голосов
/ 06 декабря 2018

Я бы немного изменился

public class MyClass{

    private String key;
    private Integer value;
}


@PostMapping("/api/v1/save")
public String save_commodities_user_predict_data(@RequestBody List<MyClass> myClass) {

    myClass.forEach( c -> {
        System.out.println(c.getKey() + c.getValue()); 

    });
}

Json:

{[{ 
    "key": "key1",
    "value": 10.0
},
{ 
    "key": "key2",
    "value": 10.0
}]}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...