【发布时间】:2017-12-27 22:22:40
【问题描述】:
我正在从以下 JSONObject 中获取 JSONObject“结果”:
{
"success" : true,
"message" : "",
"result" : {
"uuid" : "e606d53c-8d70-11e3-94b5-425861b86ab6"
}
}
我正在使用此代码:
CloseableHttpClient httpclient = HttpClients.createDefault();
String url = "some url";
HttpGet httpget20 = new HttpGet(url);
httpget20.setHeader("apisign",buildHmacSignature(url, apisecret));
try ( CloseableHttpResponse response2 = httpclient.execute(httpget20)){
HttpEntity entity = response2.getEntity();
JSONObject obj2 = new JSONObject(EntityUtils.toString(entity));
JSONObject result = obj2.getJSONObject("result");
obj2 是整个 json 对象,包括“成功”、“消息”和“结果”。
但是,这行代码会生成以下错误消息:
Exception in thread "AWT-EventQueue-0" org.json.JSONException: JSONObject["result"] is not a JSONObject.
我不确定 JSONObject 怎么不能是 JSONObject。有人可以在这里解释这个问题吗?
【问题讨论】:
-
可以添加最小运行代码吗?
-
请提供更多代码!
-
当然,我更新了问题。
-
你代码的json解析部分没问题。我希望您的问题与从 HttpEntity 中获取字符串有关。
EntityUtils.toString(entity)返回的究竟是什么字符串? -
你能验证 obj2 是否确实和你发布的一样吗?