当我从这个数组中json_encode
时:
array('aps' => array(
'alert' => array(
'param1'=>array('string'),
'param2'=>'string' )));
我正在获取此JSON对象:
{
"aps" : {
"alert" : {
"param1" : {
"0" : "string"
},
"param2" : "string"
}
}
}
而不是
{
"aps" : {
"alert" : {
"param1" :
["string"],
"param2" : "string"
}
}
}
当param1
数组不是单个项目时似乎正常工作。
我该怎么办呢? Json是从第三方包创建的,所以我应该在PHP中格式化数组,以便我可以在json_encode
(param1
作为列表)上获得正确的JSON。
答案 0 :(得分:2)
请参阅此答案:https://stackoverflow.com/a/11722121/1466341
此处有更多信息:http://www.php.net/manual/en/function.json-encode.php
注意:编码数组时,如果键不是连续数字 序列从0开始,所有键都编码为字符串,和 为每个键值对明确指定。
在你的情况下一切都应该工作正常,但我想你已经在这个例子中简化了你的PHP数组。所以,想法很简单 - 如果您的PHP数组没有所有键顺序,那么json_encode会将它们视为对象的键。