2016-08-17 58 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"} 
相關問題