【发布时间】:2018-04-30 01:34:26
【问题描述】:
我有一个$variable = array(...);
我需要像这样打印一个 JSON 响应
{
info: {
"foo": true,
"bar": "lion"
},
data: [
{"id": 123,
"name": "foo",
"baz": { "some":1,
"data":true
}
},
{"id": 321,
"name": "bar",
"baz": {}
}
]
}
所以,问题出在response["data"][1]["baz"]
有时,这个变量可以是一个空数组{},但是当我使用json_encode 时,将它返回为无关联数组[]
我需要这个变量作为关联数组
但是如果在 PHP 中我们放
echo json_encode($variable,JSON_FORCE_OBJECT);
返回这个
{
info: {
"foo": true,
"bar": "lion"
},
data: {
0: {"id": 123,
"name": "foo",
"baz": { "some":1,
"data":true
}
},
1: {"id": 321,
"name": "bar",
"baz": {}
}
]
}
和response["data"] 必须是一个无关联数组
因此,
- 以关联数组
{}的形式返回baz(即使为空,这也是问题所在)。 - 返回
data始终为无关联数组[]。
response["data"] 必须是一个列表,因为它被 javascript 中的外部库读取
【问题讨论】:
标签: php arrays json associative-array