Разбор Java из экранированной строки json

С этим связано много тем, но я не могу решить свою проблему.

Я получаю эту строку из синтаксического анализа итерации с помощью GSON.

Iterable<ParametrosProveedores> proveedoresList;

proveedoresList = proveedoresRepository.findAll(); //From spring repository

String jsonString = gson.toJson(proveedoresList);

Значение jsonString:

[{\"id\":1,\"proveedor\":\"CALIXTA\",\"unaVia\":true,\"dosVias\":true,\"plazasSi\":\"todas\",\"plazasNo\":\"\",\"turnoUnaVia\":false,\"turnoDosVias\":false},{\"id\":2,\"proveedor\":\"MOVILE\",\"unaVia\":true,\"dosVias\":true,\"plazasSi\":\"51,52\",\"plazasNo\":\"\",\"turnoUnaVia\":false,\"turnoDosVias\":false},{\"id\":3,\"proveedor\":\"TWILIO\",\"unaVia\":true,\"dosVias\":true,\"plazasSi\":\"todas\",\"plazasNo\":\"51\",\"turnoUnaVia\":false,\"turnoDosVias\":false},{\"id\":4,\"proveedor\":\"OTRO\",\"unaVia\":true,\"dosVias\":true,\"plazasSi\":\"todas\",\"plazasNo\":\"\",\"turnoUnaVia\":false,\"turnoDosVias\":false}]

Это массив json. Неужели нет способа выполнить синтаксический анализ этой строки без ручного удаления escape-символов?

Все, что я хочу сделать, это:

JSONArray jsonArray = parseFrom(jsonString);

Является ли это возможным?

Gson.fromJson(String, Class)?
pkpnd 03.05.2018 23:21
ParametrosProveedores[] data = gson.fromJson(jElement, ParametrosProveedores[].class);
Ruslan Akhundov 03.05.2018 23:22
jsonString.replace("\\", ""); заменит все экранированные символы ничем, я думаю, что лучше, чем вы сказали, делая это вручную
scigs 03.05.2018 23:26

@scigs это то, что я имел в виду под вручную, я не хочу этого делать, но, похоже, я собираюсь к этому, поскольку никто другой не понял мою проблему.

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

Ответы 1

Поскольку вы используете универсальный вариант в форме Iterable<T>, вам может потребоваться:

String jsonString = gson.toJson(proveedoresList, typeOfSrc);

Где typeOfSrc - это тип вашего proveedoresList. таким образом gson знает, как правильно сериализовать объект.

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