【发布时间】:2014-05-30 14:46:14
【问题描述】:
我正在尝试创建一个简单的 android 应用程序,该应用程序从数据库中获取数据并以列表格式显示在 android 屏幕上。我制作了一个查询数据库并返回一个 json 对象的 php 脚本。我将 json 对象转换为 json 数组并提取相关数据进行显示。但我收到此错误“JSONException:类型 org.json.JSONObject 无法转换为 JSONArray”。
以下是我的 php 脚本 -
// response Array
$response = array("tag" => $tag, "success" => 0, "error" => 0);
$username = $_POST['username'];
$events = $db->viewAttendingEvent($username);
if ($events) {
$response["success"] = 1;
$response["event"]["owner"] = $events["owner"];
$response["event"]["friendsnames"] = $events["friendsnames"];
$response["event"]["vote"] = $events["vote"];
$response["event"]["accepted"] = $events["accepted"];
$response["event"]["eventname"] = $events["eventname"];
$response["event"]["eventnumber"] = $events["eventnumber"];
$response["event"]["created_at"] = $events["created_at"];
echo json_encode($response);
这是我收到的 json:
{
"tag": "view_invitations",
"success": 1,
"error": 0,
"event": {
"owner": "jkkkkoopp",
"friendsnames": "don",
"vote": "0",
"accepted": "f",
"eventname": "yyy",
"eventnumber": "11",
"created_at": "2014-05-29 22:27:31.843528"
}
}
我正在尝试从这个不是数组的 json 对象中提取“事件”。 应该是
{
"event": [
{
"owner": "jkkkkoopp",
"friendsnames": "don",
"vote": "0",
"accepted": "f",
"eventname": "yyy",
"eventnumber": "11",
"created_at": "2014-05-2922: 27: 31.843528"
}
]
}
有人可以帮我如何使它成为有效的 jsonArray 吗?谢谢
【问题讨论】:
-
为什么你认为它不是一个有效的 json 数组?它使
$response['event']成为一个对象,因为您有与值关联的键。 -
Answered Here 看看选择的答案应该可以解决您的问题。
-
This is the json which I receive back是什么意思?是在客户端吗?你应该先告诉我们json_encode($response);在服务器上的输出是什么。 -
这是 json_encode($response) 的输出: {"tag":"view_invitations","success":1,"error":0,"event":{"owner":" jkkkkoopp","friendsnames":"don","vote":"0","accepted":"f","eventname":"yyy","eventnumber":"11","created_at":"2014- 05-29 22:27:31.843528"}}
-
但是需要的json数组是:{"tag":"view_invitations","success":1,"error":0,"event":[{"owner":"jkkkkoopp"," Friendsnames":"don","vote":"0","accepted":"f","eventname":"yyy","eventnumber":"11","created_at":"2014-05-29 22 :27:31.843528"}]}