Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.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 在php中创建JSONArray并将其发送到android_Java_Php_Android_Json - Fatal编程技术网

Java 在php中创建JSONArray并将其发送到android

Java 在php中创建JSONArray并将其发送到android,java,php,android,json,Java,Php,Android,Json,我正在开发一个android项目,我需要在php服务器中创建一条JSON消息,并将其发送到android设备 我用php编写了以下代码 $event_array = array(); // fill the event_array with some data print json_encode(array('event_array' => $event_array)); 但结果是 { "event_array": { "id_1": {

我正在开发一个android项目,我需要在php服务器中创建一条JSON消息,并将其发送到android设备

我用php编写了以下代码

$event_array = array();
// fill the event_array with some data
print json_encode(array('event_array' => $event_array));
但结果是

 {
    "event_array": {
        "id_1": {
            "name": "name",
            "logo_address": "logo_address",
            "title": "title",
            "time": null,
            "address": null,
            "address_location": null,
            "explain": null,
            "type": null,
            "id": "id_1",
            "number_of_users": null
        },
        "id_2": {
            "name": "name2",
            "logo_address": null,
            "title": null,
            "time": null,
            "address": null,
            "address_location": null,
            "explain": null,
            "type": null,
            "id": "id_2",
            "number_of_users": null
        }
    }
}
它不是一个json数组,我的android代码中有一个异常,就是

JSONObject jObject = new JSONObject(res);
JSONArray jArray = jObject.getJSONArray("event_array");
怎么了


感谢您的帮助

{表示对象,[表示数组]

在你的例子中,它有两个对象

JSONObject jObject = new JSONObject(res);
是正确的,并且包含另一个名为event_array的对象

JSONObject jsonEvents = new JSONObject(jObject.getString("event_array"));
而jsonEvents现在仍然有效

jsonEvents.getString("id_1");
这是另一个jsonObject

如果要输出为数组,请再次使用数组

如文中所述,它必须是这样的才能获得数组

echo json_encode(array(array('event_array' => $event_array)));
所以这意味着它应该是这样,以符合你的情况

 echo json_encode(
    array(
        'event_array' =>
        array(
            array("id_1" => array('name' => 'name', 'logo_...' => '...')),
            array("id_2" => array('name' => '....', 'logo_....' => '....'))
        )
 ));
用Java阅读这篇文章更有可能

 JSONObject json = new JSONObject(data);
 JSONArray jsonArr = json.getString('event_array');

 for (int i = 0; i <= jsonArr.length(); i++) {
    JSONObject jsonEventData = jsonArr.getJsonObject(i);
 }
JSONObject json=新的JSONObject(数据);
JSONArray jsonArr=json.getString('event_array');

对于(int i=0;我知道这一点!但我想要一个jsonarray而不是jsonobject!我尝试了“echo json_encode(数组('event_数组'=>$event_数组)),“\n”;”但结果与之前一样:(我也尝试了,它被更改为[{“event_数组”:{“id_1”:{“name”:“name”,“logo_address”:“logo_address”,“title:”title”,“time:”null,“address”:null,“地址位置”:null,“解释”:null,“类型”:null,“id”:“id\u 1”,“用户数”:null},“id\u 2”:{“name”:“name2”,“logo\u address”:null,“title”:null,“time”:null,“address”:null,“address\u location”:null,“解释”:null,“type”:null,“id”:“id\u 2”,“用户数”:null}}}],但例外仍然存在。顺便说一下,非常感谢您的时间:)因此,它没有错。你可以看到它是如何工作的。我会用你的案例更新答案。不!:((它也不起作用:(你可以在这里看到结果:使用了解JSONTry的类型
json_encode($event_array));
@Pratik Butani:我尝试了这个,但它不像jsonarray那样打印,而且它没有任何名称:(