У меня есть следующий код, который использует Java JSON:Java JSON Десериализация Ошибка
Widget w = new Widget(true, "LIVE");
WidgetService service = new WidgetServiceImpl(); // 3rd party JSON web service
JSONObject response = service.postWidget(w);
System.out.println("Response is: " + response.toString());
System.out.println("Now fetching orderid...");
System.out.println(response.getString("order_id"));
Не беспокойтесь о Widget
или WidgetService
: этот вопрос должен делать с тем, как я использую API Java JSON (и, в частности JSONObject
).
Когда я запускаю приведенный выше код, я получаю:
Response is: {"response":{"credits_used":"0.30","job_count":1,"order_id":"243050","currency":"USD"},"opstat":"ok"}
Now fetching orderid...
Exception in thread "main" org.json.JSONException: JSONObject["order_id"] not found.
at org.json.JSONObject.get(JSONObject.java:473)
at org.json.JSONObject.getString(JSONObject.java:654)
at com.me.myapp.MyDriver.main(MyDriver.java:49)
Как вы можете видеть, есть поле Строки order_id возвращается в ответ, и он имеет значение «243050». Так почему я получаю исключение?
OrderID не непосредственно связанный с объектом ответа, он находится в пределах другого объекта – epoch