JSONobject внутри JSONObject в java

У меня есть следующее сопоставление запросов:

@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>

это зависимость.

Почему вы не рассматриваете возможность определения модели данных POJO и сопоставления с ней @RequestBody?

Brad 23.11.2018 09:44
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
1
81
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Библиотека 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.

Другие вопросы по теме