安卓JSON对象

5
我有一个JSON格式的数据如下:

{"response":{"status":true,"result":"user_exists"}}

现在我想要获取Status的值以便进行一些逻辑操作。
JSONObject jData = new JSONObject(data);
JSONArray response = jData.getJSONArray("response");

但我遇到了以下错误

org.json.JSONException:值{"result":"user_exists","status":true}的响应类型为org.json.JSONObject,无法转换为JSONArray

如何从内部获取对象?

4个回答

5

response是一个JSONObject,而不是JSONArray。数组对象用这些[]括号包围,普通对象则使用常规的{}括号。(有关更多格式信息,请参见json.org

更改

JSONArray response = jData.getJSONArray("response");

to

JSONObject response = jData.getJSONObject("response");

4

您想从一个 JSONArray 中检索状态属性,但是您的代码中没有任何 JSONArrayJSONArray[] 包围,而 JSONObject 则被 {} 包围), 因此,要检索状态值,请尝试以下方法:

JSONObject jData = new JSONObject(data);
JSONObject response = jData.getJSONObject("response");

boolean status = response.getBoolean("status");

1

在编程中,你需要先通过以下代码定位到响应对象:

JSONObject response = jData.getJSONObject("response") 而不是 JSONArray,因为响应是一个对象。


1

response 不是一个数组,而是一个对象。请使用 getJSONObjectJSONObject 代替 getJSONArrayJSONArray


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接