我发送带有id的Ajax请求,并且我期待来自php的带有附加信息的响应。PHP的响应如下:
Array
(
[success] => 1
[id] => 20
[fullname] => John Doe
[statuslist] => Array
(
[1] => Status1
[2] => Status2
[3] => Status3
)
)
当我
json_encode()
它
return json_encode($response);
我得到这样的答复:
{"success":true,"id":"20","fullname":"John Doe","statuslist":{"1":"Status1","2":"Status2","3":"Status3"}}
当我
JSON.parse()
在JS中,它成为一个对象。而且
statuslist
成为嵌套对象,这就是问题所在。
let res = JSON.parse(data) /* where data is response from server */
当我
console.log(res.statuslist)
我得到以下对象:
{ 1 : "Status1", 2 : "Status2", 3 : "Status3"}
我真正想要的是得到一个我已经拥有的对象,但是状态列表是一个2d数组,在这个数组中我可以打开输出。
console.log(res.statuslist)
:
[
["1", "Status1"],
["2", "Status2"],
["3", "Status3"]
]
我的PHP数组如下:
$statusList = ArrayHelper::map(\app\models\SomeModel::find()->all(), 'id', 'title');
$response = [
'success' => true,
'id' => $id,
'fullname' => $user->fullname,
'statuslist' => $statusList,
];