使用PHP的对象JSON响应

使用PHP的对象JSON响应,php,json,Php,Json,我正在尝试使用PHP生成JSON响应,该响应应如下所示: Records={{"country":"United States","fixed":0.20,"cellular":0.35}, {"country":"Canada","fixed":0.30,"cellular":0.45}} 但当我运行代码时,我得到的是: Records={"0": {"country":"United States","fixed":0.20,"cellular":0.35}, "1":{"country"

我正在尝试使用PHP生成JSON响应,该响应应如下所示:

Records={{"country":"United States","fixed":0.20,"cellular":0.35}, {"country":"Canada","fixed":0.30,"cellular":0.45}}
但当我运行代码时,我得到的是:

Records={"0": {"country":"United States","fixed":0.20,"cellular":0.35}, "1":{"country":"Canada","fixed":0.30,"cellular":0.45}}
这是我的PHP代码:

$arr_o = array();

array_push($arr_o, array("country" => "United States", "fixed" => 0.20, "cellular" => 0.35));
array_push($arr_o, array("country" => "Canada", "fixed" => 0.30, "cellular" => 0.45));

return json_encode((object)$arr_o);

array_push方法将第二个参数(填充的“JSON”数组)作为该数组的元素添加到现有的空数组中

例如:

$a = array();
array_push($a, 1);
print_r($a)
$c = array(1);
$c = array_merge($c, array((2, 3, 4));
print_r($c);
收益率:

Array
(
   [0] => 1
)
Array
(
    [0] => 1
    [1] => Array
        (
            [0] => 2
            [1] => 3
        )

)
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
)
如果参数本身是数组,则它将作为元素追加:

$b = array();
array_push($b, 1);
array_push($b, array(2, 3));
print_r($b);
收益率:

Array
(
   [0] => 1
)
Array
(
    [0] => 1
    [1] => Array
        (
            [0] => 2
            [1] => 3
        )

)
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
)
如果要将一个数组的元素附加到现有数组的末尾,一种解决方案是使用array_merge方法,例如:

$a = array();
array_push($a, 1);
print_r($a)
$c = array(1);
$c = array_merge($c, array((2, 3, 4));
print_r($c);
收益率:

Array
(
   [0] => 1
)
Array
(
    [0] => 1
    [1] => Array
        (
            [0] => 2
            [1] => 3
        )

)
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
)
有关以下PHP文档,请参阅有关array_merge的更多信息:


正如其他人已经注意到的,{}还应该转换为“[]”,以便输出为有效的JSON。

您所需的格式不是有效的JSON!。它应该有
[]
围绕着一切,而不是
{}
。如果你不使用
(object)
直接对它进行编码,你会得到更接近你意图的东西(一个对象数组),尽管你上面的第一个例子并不像@Sirko指出的那样是正确的JSON<代码>返回json编码($arr\u o)。。。要获得
[{“国家”:“美国”,“固定”:0.2,“蜂窝”:0.35},{“国家”:“加拿大”,“固定”:0.3,“蜂窝”:0.45}]