I have the following code that uses 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"));
Don't worry about Widget
or WidgetService
: this question has to do with how I'm using the Java JSON API (and specifically JSONObject
).
When I run the above code, I get:
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)
As you can see, there is an order_id String field coming back in the response, and it has a value of "243050". So why am I getting the exception?
Your JSONObject response
points to the outer json object.
I am pretty sure, your response object has a property "response"
(and "opstat"
btw.) containing your expected object.
你必须这样做:
response.getJSONObject("response").getString("order_id");
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.