一,String轉json
這個JSON.parse()與eval()都可以實現,但是它們是有區別的,
JSON.parse對json字符串要求比eval()更為嚴格,key名稱(例如name)全部必須有雙引號。
而eval必須用括號將json字符串括起來才能成功轉換,key名稱(例如name)有無雙引號都可以成功轉化。
二,JSON轉String,用【 JSON.stringify() 】
json的key名稱(例如name)有無雙引號都可以成功用JSON.stringify()實現轉化,但是注意我們最好還是將雙引號寫上(或者要求后端在返回數據的時候為key名稱加上雙引號)。
*當然JSON.stringify()還可以用於數據過濾,第二個參數是函數,而第三個參數用於json數據結果的代碼縮進。
<script> var jewave = {"name":"bobo","like":["singsong","run"]}; function filter(key,value){ switch(key){ case "like": return value.join(','); default: return value; } } JSON.stringify(jewave,filter,4) /*執行結果,數組成員被第二個參數【函數】拼接成一個單獨的字符串*/ "{ "name": "bobo", "like": "singsong,run" }" <script>
*toJSON函數也可以過濾JSON數據,注意是js內置的函數【toJSON】不能寫錯。
var book = {"name":"π","editor":"趙六",toJSON:function () {return this.name} }; var jsonText = JSON.stringify(book); console.log(jsonText) //"π"