亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將對象字符串轉換為JSON

將對象字符串轉換為JSON

慕少森 2019-08-30 18:03:54
如何使用JavaScript(或jQuery)將描述對象的字符串轉換為JSON字符串?例如:轉換它(不是有效的JSON字符串):var str = "{ hello: 'world', places: ['Africa', 'America', 'Asia', 'Australia'] }"進入這個:str = '{ "hello": "world", "places": ["Africa", "America", "Asia", "Australia"] }'我希望eval()盡可能避免使用。
查看完整描述

3 回答

?
瀟瀟雨雨

TA貢獻1833條經驗 獲得超4個贊

如果字符串是來自可靠來源,你可以使用eval然后JSON.stringify的結果。像這樣:


var str = "{ hello: 'world', places: ['Africa', 'America', 'Asia', 'Australia'] }";

var json = JSON.stringify(eval("(" + str + ")"));

請注意,當您eval使用對象文字時,必須將其括在括號中,否則將大括號解析為塊而不是對象。


我也同意這個問題下的評論,即在開始時用有效的JSON編碼對象會更好,并且避免必須解析,編碼,然后可能再次解析它。HTML支持單引號屬性(只需確保對字符串中的任何單引號進行HTML編碼)。


查看完整回答
反對 回復 2019-08-30
?
慕慕森

TA貢獻1856條經驗 獲得超17個贊

你的字符串是無效的JSON,所以JSON.parse(或jQuery的$.parseJSON)將無法正常工作。


一種方法是使用eval“解析”“無效”JSON,然后stringify將其“轉換”為有效的JSON。


var str = "{ hello: 'world', places: ['Africa', 'America', 'Asia', 'Australia'] }"

str = JSON.stringify(eval('('+str+')'));

我建議您不要試圖“修復”無效的JSON,而是先從有效的JSON開始。如何str生成,它應該在生成之前修復,而不是之后。


編輯:您說(在評論中)此字符串存儲在數據屬性中:


<div data-object="{hello:'world'}"></div>

我建議你在這里解決它,所以它可以只是JSON.parsed。首先,它們的鍵和值都需要用雙引號引用。它應該看起來像(HTML中的單引號屬性是有效的):


<div data-object='{"hello":"world"}'></div>

現在,您可以使用JSON.parse(或jQuery $.parseJSON)。


var str = '{"hello":"world"}';

var obj = JSON.parse(str);


查看完整回答
反對 回復 2019-08-30
  • 3 回答
  • 0 關注
  • 414 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號