Проблема с преобразованием строки в json в Java - PullRequest
0 голосов
/ 09 октября 2019

Я новичок в Java и создаю веб-приложение с использованием сервлета в Eclipse. Я хочу преобразовать строку в JSON, используя этот код:

import org.json.JSONException; 
import org.json.JSONObject;

JSONObject jsonObject = null;
jsonObject = new JSONObject(STRING);

System.out.println(jsonObject.getString("PROPERTY_NAME"));

Это прекрасно работает, если STRING равно "{'status':0}" и jsonObject.getString("status") дает мне 0.

НоЯ получаю ответ от API, такой как "{"status":0}" и jsonObject.getString("status") выдает ошибку, потому что jsonObject это:

{}

И ошибка:

org.json.JSONException: JSONObject ["status"] не найден.

Есть ли у вас какое-либо решение по этому поводу?

Ответы [ 3 ]

2 голосов
/ 09 октября 2019

Проблема со значением, а не ключом. Я проверил это, оно работает

JSONObject jsonObject = null;
jsonObject = new JSONObject("{\"status\":0}");
System.out.println(jsonObject.getInt("status"));

или это

 JSONObject jsonObject = null;
 jsonObject = new JSONObject("{\"status\":'0'}");
 System.out.println(jsonObject.getString("status"));
1 голос
/ 09 октября 2019

Вам нужно экранировать двойные кавычки в переменной STRING:

"{\"status\":0}"

Вы можете сделать это программным образом так (нам нужно вызвать toString(), потому что STRING имеет StringBuilder):

String escapedJsonStr = STRING.toString().replaceAll("\"", "\\\"");
0 голосов
/ 09 октября 2019

Я могу помочь вам с приведенным ниже примером ...

for (Строковый ключ: jsonObject.keySet ()) {System.out.println (key);}

При этом вы получите набор ключей в JSON.

JSONObject json_array = args.optJSONObject (0);

Итератор keys = json_array.keys ();

while (keys.hasNext ()) {String key = (String) keys.next ();System.out.println («Ключ:» + ключ);System.out.println («Значение:» + json_array.get (ключ));}

Я рекомендую перейти по ссылке для полного понимания Java и JSON - Пример

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