Java 在php中创建JSONArray并将其发送到android
我正在开发一个android项目,我需要在php服务器中创建一条JSON消息,并将其发送到android设备 我用php编写了以下代码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": {
$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那样打印,而且它没有任何名称:(