1. 程式人生 > >json字串與json物件的轉換

json字串與json物件的轉換

php把一個數組通過json_encode把陣列轉換成json格式的字串,這個格式有個特點。key值與value都用了雙引號

例如{"region_id":"1564","region_name":"上海","age":"32"}。該資料在頁面中接受

<script>

var str="<?php echo $str;?>";//加雙引號是錯誤的。因為字串中就有雙引號。可以加單引號。如果不加引號

var str=<?php echo $str;?> json字串會直接轉換成json物件。

如果 var str='<?php echo $str;?>'; 這個時候str是個json字串。

json字串轉換成物件有兩個方法:

一, str=JSON.parse(str) ;通過這個函式會直接把字串轉換成物件。

二,利用eval()函式。str=eval("("+str+")"); 為什麼eval()函式中要加小括號。

/*原因在於:eval本身的問題。 由於json是以“{}”的方式來開始以及結束的,在JS中,它會被當成一個語句塊來處理,所以必須強制性的將它轉換成一種表示式。

加上圓括號的目的是迫使eval函式在處理JavaScript程式碼的時候強制將括號內的表示式(expression)轉化為物件,而不是作為語句(statement)來執行。舉一個例子,例如物件字面量{},如若不加外層的括號,那麼eval會將大括號識別為JavaScript程式碼塊的開始和結束標記,那麼{}將會被認為是執行了一句空語句。所以下面兩個執行結果是不同的*/


</script>