gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 12:45:35 25 4
gpt4 key购买 nike

我正在开发一个 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。

如果要以数组形式输出,请再次使用数组。

http://de3.php.net/json_encode 中所写它必须是这样的才能得到一个数组

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);
}

关于java - 在php中创建JSONArray并将其发送到android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24730928/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com