У меня есть следующее сопоставление запросов:
@RequestMapping(value = "/reCalculated", method = RequestMethod.POST)
public @ResponseBody void reCalculated(JSONObject obj) {
obj.
}
а затем у меня есть входящий json
{"params":{"date_a":"2017-05-01","date_b":"2017-05-02"}}
но в java obj. дает мне только варианты toString() и toJSONString()
Между тем все руководства и несколько тем ясно говорят мне, что я должен уметь делать obj.getJSONObject("params"). Почему это? как я могу получить доступ к своим параметрам?
<dependency>
<groupId>com.googlecode.json-simple</groupId>
<artifactId>json-simple</artifactId>
<version>1.1.1</version>
</dependency>
это зависимость.




Библиотека json-simple имеет метод get(String name) и требует преобразования внешнего типа, как показано ниже.
String name = (String) jsonObject.get("name");
JSONArray msg = (JSONArray) jsonObject.get("messages");
long age = (Long) jsonObject.get("age");
Но в библиотеке gson есть предопределенные методы здесь
public JsonObject getAsJsonObject(String memberName)
public JsonArray getAsJsonArray(String memberName)
Зависимость от Maven
<!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.3</version>
</dependency>
Вы можете получить JSONString из своего параметра
Gson gson = (new GsonBuilder()).create();
jsonString = obj.get("params").getAsString();
JsonObject param= gson.fromJson(jsonString, JsonObject.class);
Как сказал Deadpool, вы хотите использовать gson, но добавили зависимость json-simple.
Почему вы не рассматриваете возможность определения модели данных POJO и сопоставления с ней @RequestBody?