我想要输出json,但我有错误
06-02 23:10:26.110: W/System.err(23235): org.json.JSONException: Value data of type java.lang.String cannot be converted to JSONObject
06-02 23:10:26.116: W/System.err(23235): at org.json.JSON.typeMismatch(JSON.java:111)
06-02 23:10:26.117: W/System.err(23235): at org.json.JSONObject.<init>(JSONObject.java:158)
06-02 23:10:26.117: W/System.err(23235): at org.json.JSONObject.<init>(JSONObject.java:171)
我创建了我的代码,例如,我的json:
{
"status": "success",
"data": {
"users_information": [
{
"id": "1",
"active": "1",
},
{
"id": "2",
"active": "1",
}]}}
这是我的代码:
JSONObject data = new JSONObject("data");
JSONArray userInform = data.getJSONArray("users_information");
for(int i = 0; i < userInform.length(); i++) {
JSONObject c = userInform.getJSONObject(i);
Log.e("id ", c.getString("id"));
}
答案 0 :(得分:3)
String data = "{
"status": "success",
"data": {
"users_information": [
{
"id": "1",
"active": "1",
},
{
"id": "2",
"active": "1",
}]}}"
解析Json
JSONObject data = new JSONObject(data);
JSONArray userInform = data.getJSONArray("users_information");
for(int i = 0; i < userInform.length(); i++) {
JSONObject c = userInform.getJSONObject(i);
Log.e("id ", c.getString("id"));
}
字符串数据json可以替换为从后端接收的JSON
答案 1 :(得分:1)
我不推荐像这样的json反序列化。尝试至少使用Gson库。有了它,你可以像json一样创建具有相同结构的类,它将以单行解析。
答案 2 :(得分:1)
JSONObject data = new JSONObject("data");
您必须将JSON字符串放在放置“数据”的位置。 “data”只是一个字符串,没有你在你的例子中发布的json。
如果由于任何原因“data”是您对JSON字符串的字符串引用,那么您不小心添加了引号(“),让android将其解释为String而不是对String的引用。