2016-08-17 125 views
2

我的代码是:将非关联数组传递给json_encode()会发生什么?

<?php 
    $arr = array(); 
    array_push($arr,"One","Two","Three"); 
    print_r($arr); 
    echo '<br>'; 
    echo json_encode($arr); 
?> 

正如你所看到的,我通过非关联数组json_encode()。我得到的输出是

阵列([0] =>一[1] =>双[2] =>三)
[ “一”, “二”, “三”]

输出的第二行究竟是什么?如果我们传递一个关联数组到json_encode(),返回的是一个JSON对象,但返回的这个数组肯定不像JSON对象。那它是什么?

此外,有没有办法将非关联数组转换为JSON对象使用json_encode()

+2

这是一个简单的数字索引数组。 –

+1

这有时会导致某些JSON解析器出现问题,但它是一个JSON对象。它是数组表示的,但一些解析器期望根节点是一个“{}”类型的对象。 – Fma

回答

2

如果你想获得它在正确的对象符号,试试这个:

echo json_encode($arr,JSON_FORCE_OBJECT); 

输出:

{"0":"One", "1":"Two", "2":"Three"} 

参考json_encode() options

1

嗨您也可以尝试这个

echo json_encode((object)$arr); 

输出

{"0":"One","1":"Two","2":"Three"} 
相关问题