[英]JQuery.parseJSON not working with string
我正在嘗試將字符串解析為對象。 我在以下鏈接中查看了 jQueryparseJSON 文檔,我還包含了 jquery 庫,所以我知道不是這樣。
到目前為止,這是我的代碼
var str = "{'val1': 1, 'val2': 2, 'val3': 3}";
var obj = jQueryparseJSON( str );
alert(obj.val1);
在 Firebug 中,我收到以下錯誤:
SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data
我知道解決方案很可能非常簡單,但我一直在忽視它。
示例代碼中的測試字符串不是有效的 JSON:
var str = '{"val1": 1, "val2": 2, "val3": 3}';
var obj = jQuery.parseJSON( str );
alert(obj.val1);
現在,如果您正在執行所有這些操作是因為某些服務將該對象作為 JSON 字符串提供,那么 jQuery可能無論如何都會為您執行解析步驟。 如果您只是想在 JavaScript 代碼中包含一個對象字面量,那么根本沒有理由涉及 JSON 服務:
var obj = { val1: 1, val2: 2, val3: 3 };
創建一個對象。
請注意,JSON 語法比 JavaScript 對象文字語法更嚴格。 JSON 堅持使用雙引號字符引用屬性名稱,當然值只能是數字、字符串、布爾值或null
。
您的字符串不是有效的 JSON。 對象鍵必須用雙引號括起來,而不是單引號。
var str = '{"val1": 1, "val2": 2, "val3": 3}';
var obj = jQuery.parseJSON(str);
alert(obj.val1);
function str2json (str, val, obj) {
var obj = str.indexOf("'") != -1
? JSON.parse(str.replace(/'/g, "\""))
: JSON.parse(str);
return (val === undefined ? obj /* JSON.stringify(obj) */ : obj[val])
};
str2json("{'val1': 1, 'val2': 2, 'val3': 3}", "val1"); // `1`
str2json("{'val1': 1, 'val2': 2, 'val3': 3}")
// `obj` : `[object Object]` ,
// `JSON.stringify(obj)` : `{"val1":1,"val2":2,"val3":3}`
您的代碼中有typo
錯誤:
這里var obj = jQueryparseJSON( str );
應該是var obj = jQuery.parseJSON( str );
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.