php json_encode单项数字数组

时间:2014-05-07 10:27:38

标签: php arrays json

当我从这个数组中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_encodeparam1作为列表)上获得正确的JSON。

1 个答案:

答案 0 :(得分:2)

请参阅此答案:https://stackoverflow.com/a/11722121/1466341

此处有更多信息:http://www.php.net/manual/en/function.json-encode.php

  

注意:编码数组时,如果键不是连续数字   序列从0开始,所有键都编码为字符串,和   为每个键值对明确指定。

在你的情况下一切都应该工作正常,但我想你已经在这个例子中简化了你的PHP数组。所以,想法很简单 - 如果您的PHP数组没有所有键顺序,那么json_encode会将它们视为对象的键。