Я получаю String jsonObject в моем контроллере.
Структура следующая:
{
"name":"name",
"schema": {
...
...
}
}
Мне нужно разобрать его на обычный старый объект Java и получить schema в виде строки (с сохранением структуры). Когда я использую System.out.print("schema"), я ожидаю увидеть:
{
...
...
}
У меня есть POJO Collection с полями String name и Object schema.
Я использую GSON для получения Collection.class от String json:
new Gson().fromJson(json, Collection.class);
Когда я пытаюсь распечатать Collection.schema, я получаю следующий вывод:
{......} - в один ряд.
Мне очень нужно получить этот объект как Stringбез форматирования
да. Как я могу получить строку символов, которая представляла ее в исходном JSON?




Это должно работать. По сути, вы гидратируете свой объект Collection, а затем просто отправляете свою схему обратно через Gson. Сделанный.
Gson gson = new Gson();
Collection collection = gson.fromJson(json, Collection.class);
String schema = gson.toJson(collection.getSchema());
System.out.println(schema);
Можно задать вопрос, почему вы принимаете строку от своего контроллера? Возможно, вы сможете использовать фреймворк для передачи полностью преобразованного объекта Collection и сэкономите себе время?
Кроме того, для вашей Collection.schema обычно используется Map<String, Object> вместо Object для этого типа парадигмы без «схемы».
Я только начинаю писать службы REST с использованием Spring Boot. Буду рад, если подскажете, как лучше сделать
Ах да, тогда Spring REST сделает это. Поэтому в аргументах метода вашего контроллера просто используйте yourMethod(@RequestBody Collection collection). Затем оттуда вы можете использовать GSON для преобразования схемы в строку json.
Без проблем. Добро пожаловать в Spring Web REST. Надеюсь, вы весело проведете время в своем путешествии.
Итак, вы просите, чтобы значение «схемы» не декодировалось, а каким-то образом сохранялось как исходная строка символов, которая представляла его в исходном JSON? Я думаю, вы бы хотели, чтобы значение ключа «схема» было этой строкой. Странно хотеть. Если вы перекодируете такую структуру, вы получите строку JSON, отличную от исходной.