2016-06-13 4 views
0

Я вижу проблему с версией json.org 2.3. Та же проблема не наблюдает с json.org 2.2 в JavaJsonObject ("body") не строка

Ниже сырым сообщение

"message" : { "header" : {"version" : "1.2" }, 
       "body" : {"event" : "plan"} 
      } 
JSONObject msgJsonObject = new JSONObject(rawMessage.getBody()); 
String message = msgJsonObject.getString(MESSAGE); 
JSONObject bodyJsonObject = new JSONObject(message); 
log.error(" Message : "+ message); 


String body = bodyJsonObject.getString("body"); 

с json.org версии 2.2 выше код работает нормально, но с json.org версии 2,3 «bodyJsonObject.getString (BODY) 'вызывает JsonException: JsonObject ("body") не является строкой.

Не могли бы вы сообщить мне, почему его проблема с версией 2.3?

+1

'{«событие»:«план»}' не является строкой, это объект JSON – Armand

+0

попробовать Строка тела = bodyJsonObject.getJSONObject "body"). toString(); поскольку он не будет рассматривать непосредственно как строку из объекта json. – Vickyexpert

+0

Официальная библиотека «json.org» использует даты в качестве идентификаторов своей версии. Что вы подразумеваете под «2.2» и «2.3»? –

ответ

1

Значение body, {"event" : "plan"} не является строкой: это объект JSON.

Я не знаю, почему поведение вашей библиотеки JSON изменилось между версиями 2.2 и 2.3, но поведение в 2.3 кажется правильным.

Если вы хотите, чтобы получить String представление объекта, вы можете попробовать:

bodyJsonObject.getJSONObject("body").toString(); 
Смежные вопросы