Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android:JSONObject无法转换为JSONArray_Java_Android_Json - Fatal编程技术网

Java Android:JSONObject无法转换为JSONArray

Java Android:JSONObject无法转换为JSONArray,java,android,json,Java,Android,Json,我想使用JSON从php文件到Android获取数据。这是我的代码: .... HttpEntity e = r.getEntity(); String data = EntityUtils.toString(e); JSONArray timeline = new JSONArray(data); JSONObject last = timeline.getJSONObject(0); return last; 调试程序时,这一行有JSONException: JSONObject last

我想使用JSON从php文件到Android获取数据。这是我的代码:

....
HttpEntity e = r.getEntity();
String data = EntityUtils.toString(e);
JSONArray timeline = new JSONArray(data);
JSONObject last = timeline.getJSONObject(0);
return last;
调试程序时,这一行有JSONException:

JSONObject last = timeline.getJSONObject(0);
数据是
{a:1,“b:2,”c:3,“d:4,”e:5}
,例外情况是:

org.json.JSONException: Value {"d":4,"e":5,"b":2,"c":3,"a":1} of type org.json.JSONObject cannot be converted to JSONArray

在Json中,使用
[]
描述数组。
这里定义了一个具有五个属性的对象。

在Json数组中使用
[]
进行描述。
在这里,您定义了一个具有五个属性的对象。

异常消息非常明确,请看一下。代码接收到的JSON字符串为:

{"a":1,"b":2,"c":3,"d":4,"e":5}
此字符串表示对象,而不是数组。数组的一个示例如下:

[1, 2, 3, 4, 5]
甚至这个:

[{"a":1,"b":2,"c":3,"d":4,"e":5}]
请注意,开始和结束括号

我认为您会发现异常位置有点误导。我不知道这是否是某种延迟初始化或其他原因造成的,但我相信原因实际上是这行:

JSONArray timeline = new JSONArray(data);

由于
数据
字符串表示一个JSON对象,而不是一个数组,因此此操作显然是不可能的。

异常消息是非常明确的,请看一下。代码接收到的JSON字符串为:

{"a":1,"b":2,"c":3,"d":4,"e":5}
JSONArray timeline = new JSONArray(data);
// change JSONArray to JSONObject

JSONObject timeline = new JSONObject(data);// Like This
此字符串表示对象,而不是数组。数组的一个示例如下:

[1, 2, 3, 4, 5]
甚至这个:

[{"a":1,"b":2,"c":3,"d":4,"e":5}]
请注意,开始和结束括号

我认为您会发现异常位置有点误导。我不知道这是否是某种延迟初始化或其他原因造成的,但我相信原因实际上是这行:

JSONArray timeline = new JSONArray(data);
由于
data
字符串表示一个JSON对象,而不是一个数组,因此此操作显然是不可能的

JSONArray timeline = new JSONArray(data);
// change JSONArray to JSONObject

JSONObject timeline = new JSONObject(data);// Like This
您的JSON数据不是数组


您的JSON数据不是数组

您的json响应是对象形式,而不是数组形式。因此,您只需解析json对象即可。假设“data”是响应中的JSONObject标记。 以下是解析的方法:

           HttpEntity e = r.getEntity();
           String result = EntityUtils.toString(e);
           JSONObject response=new JSOBObject(result);
           JSONOBject Data=response.getJSONObject("data");
           int a=Data.getInt("a");
           int b=Data.getInt("b");
           int c=Data.getInt("c");
           int d=Data.getInt("d");
           int e=Data.getInt("e");

谢谢。

您的json响应是对象形式,而不是数组形式。因此,您只需解析json对象即可。假设“data”是响应中的JSONObject标记。 以下是解析的方法:

           HttpEntity e = r.getEntity();
           String result = EntityUtils.toString(e);
           JSONObject response=new JSOBObject(result);
           JSONOBject Data=response.getJSONObject("data");
           int a=Data.getInt("a");
           int b=Data.getInt("b");
           int c=Data.getInt("c");
           int d=Data.getInt("d");
           int e=Data.getInt("e");

谢谢。

这是JSON对象
{“a”:1,“b”:2,“c”:3,“d”:4,“e”:5}
。这是一个JSONArray和一个JSONObject这是一个JSON对象
{a:1,b:2,c:3,d:4,e:5}
。这个
[{“a”:1,“b”:2,“c”:3,“d”:4,“e”:5}]
是带有1个JSONObject的JSONArray非常感谢您的帮助!非常感谢你的帮助!非常感谢您的帮助!:我想你指的是
{}
而不是
[]
?请看above@Rup错误在于我谈论的是数组而不是对象。谢谢你指出这一点。非常感谢你的帮助!:我想你指的是
{}
而不是
[]
?请看above@Rup错误在于我谈论的是数组而不是对象。谢谢你指出这一点