Как проанализировать многомерный JSONString в Java - PullRequest
0 голосов
/ 23 сентября 2018

У меня есть String в формате JSON, в котором есть единичная пара ключ-значение, и Map, состоящий из различных String -типированных ключей и значений внутри, как показано ниже:

"{"Key":"value","Map":{"key1":"val1","key2":"val2",...}}"

Что я хочу сделать, так это преобразовать String в JSONObject (потому что у меня есть другой код, который может легко интерпретировать JSONObject).Моим первым инстинктом было использование синтаксического анализатора (JSONParser), например, приведенного ниже фрагмента кода ...

JSONParser parser = new JSONParser();
Object o = new JSONParser();

o = (JSONObject) parser.parse(jsonStr);
JSONObject j = (JSONObject) o;

... но я получил ParseException вместо удобного JSONObject.Это почему?Должен ли я трактовать String по-другому, поскольку внутри него есть Map?Или я делаю что-то сверх возможностей JSONParser?

1 Ответ

0 голосов
/ 23 сентября 2018

... но я получил ParseException вместо удобного JSONObject.Почему это так?

Если вы получили ParseException, это означает, что то, что вы считаете JSON, (на самом деле) не является допустимым JSON.Это не проблема с вашим парсинговым кодом или парсером JSONObject.Это либо проблема с тем, каким образом (предположительно) был создан JSON, либо с «каналом», по которому он достиг кода, который должен был его проанализировать.


Должен ли я относиться к строке по-другому, так как в ней есть карта?

Нет.

Замечу, что ваши примеры кода не достаточно ясны / полны, чтобы точно сказать, что вы делаете.(В будущем, пожалуйста, предоставьте настоящий MCVE , а не фрагменты кода, которые не имеют большого смысла 1 ... и, конечно, не могут быть скомпилированы и запущены.) Ноничто не указывает на то, что , код является причиной ParseException.

Или я делаю что-то сверх возможностей JSONParser?

Нет.Синтаксический анализатор JSON может справиться с любым JSON при условии, что он правильно сформирован .


Чтобы исправить это, вам необходимо выяснить, почему анализатор считает, что ваш JSONплохой, и вернитесь к основной причине ошибки.


1 - Например, почему вы присваиваете объект JSONParser переменной типа Object?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...