Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Проблема с JSON / 12 сообщений из 12, страница 1 из 1
11.05.2012, 17:14:08
    #37789805
jab
jab
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с JSON
Кто как борется с дюймами и другими двойными ковычками в JSON?
Вот к примеру: jab{"id":"30" X 50"","displayName":"30" X 50""}
Использую
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;

Обламывается соответственно там (в парсере):
JsonParser parser = new JsonParser();
je = parser.parse(jsonText).getAsJsonObject();

Может есть стандартные способы решения таких вопросов?
...
Рейтинг: 0 / 0
11.05.2012, 17:23:32
    #37789826
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с JSON
Надо побить того кто такой JSON прислал. Парсер не виноват. Тот кто сформировал JSON должен был заэскейпить данные. Обратным слэшом, вроде.
...
Рейтинг: 0 / 0
11.05.2012, 17:29:00
    #37789834
jab
jab
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с JSON
Я не могу побить автора. Руки коротки. :)
...
Рейтинг: 0 / 0
11.05.2012, 17:32:59
    #37789839
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с JSON
jabЯ не могу побить автора. Руки коротки. :)
Это не валидный JSON. Должно быть что-то такое.
{"id":"30\" X 50\"","displayName":"30\" X 50\""}
Как это можно забороть вообще? Выкидывайте исключение, что формат не валидный. :)
...
Рейтинг: 0 / 0
11.05.2012, 17:57:50
    #37789886
jab
jab
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с JSON
Тогда конкретно для этого примера с дюймами можно попробовать так:
String jsonText = docj.text().replaceAll("([0-9]+)\"", "$1\\\"");
Но что-то не заменят. По идее должно работать. Чот не то сделал видно.
...
Рейтинг: 0 / 0
11.05.2012, 18:00:51
    #37789893
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с JSON
jabТогда конкретно для этого примера с дюймами можно попробовать так:
String jsonText = docj.text().replaceAll("([0-9]+)\"", "$1\\\"");
Но что-то не заменят. По идее должно работать. Чот не то сделал видно.
Направление, конечно, интересное. Но надо же как-то и валидные кавычки пропустить. Иначе он все числовые значения тоже заэскейпит.
...
Рейтинг: 0 / 0
11.05.2012, 18:01:54
    #37789898
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с JSON
Вы точно не с той стороны копаете. Кто вам этот JSON присылает? GWT?
...
Рейтинг: 0 / 0
11.05.2012, 18:31:04
    #37789942
jab
jab
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с JSON
Чтоб числовое значение не заэскейпить, нужно немного подправить регулярку. А также он не хочет заменять в реплэйсе \\\ такую конструкцию, но мы пойдем другим путем %22.
Вот новый вариант
String jsonText = docj.text().replaceAll("([0-9]+)\"([^,])", "$1$2%22");
...
Рейтинг: 0 / 0
11.05.2012, 19:03:39
    #37789981
jab
jab
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с JSON
Мм.. опечатался вместо "$1$2%22" надо "$1%22$2" тогда будет
{"id":"30%22 X 50%22","displayName":"30%22 X 50%22"}
...
Рейтинг: 0 / 0
11.05.2012, 19:38:35
    #37790028
jab
jab
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с JSON
BlazkowiczВы точно не с той стороны копаете. Кто вам этот JSON присылает? GWT?
Нет определенного человека. Перд мной стоит задача парсить разные сайты. Иногда встречаются вот такие вот JSON уродские. Но нужно всеравно распарсить. Методов воздействия на авторов сайтов нет.
...
Рейтинг: 0 / 0
11.05.2012, 19:59:12
    #37790047
Leonidv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с JSON
jabBlazkowiczВы точно не с той стороны копаете. Кто вам этот JSON присылает? GWT?
Нет определенного человека. Перд мной стоит задача парсить разные сайты. Иногда встречаются вот такие вот JSON уродские. Но нужно всеравно распарсить. Методов воздействия на авторов сайтов нет.
ДА! Обожаю интернет! Там такого можно встретить, что закачаешься.

А такое часто встречается? Может это библиотека какая-нибудь генерит и можно прогуглить как она работает?
...
Рейтинг: 0 / 0
14.05.2012, 14:01:06
    #37793191
jab
jab
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с JSON
Leonidv , не очень часто. Но встречается много разного. Нет единого подхода. Это интернет магазины такое генерят, а их сотни.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Проблема с JSON / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]