我想解析JSON與jQuery我通過AJAX從遠程服務器獲得。 JSON數據如下:{identifier:"ID", label:"LABEL"}
但無法。顯然,字段標識符和標籤沒有雙引號。它在我的本地測試網站上用雙引號測試時有效。解析JSON數據時不帶引號與jQuery
是否可以使用jQuery無引號工作?我已經四處搜尋,找不到解決辦法。
任何輸入表示讚賞。謝謝。
我想解析JSON與jQuery我通過AJAX從遠程服務器獲得。 JSON數據如下:{identifier:"ID", label:"LABEL"}
但無法。顯然,字段標識符和標籤沒有雙引號。它在我的本地測試網站上用雙引號測試時有效。解析JSON數據時不帶引號與jQuery
是否可以使用jQuery無引號工作?我已經四處搜尋,找不到解決辦法。
任何輸入表示讚賞。謝謝。
你不能。 JSON規範說明如下:
A string is a sequence of zero or more Unicode characters, wrapped in double quotes, using backslash escapes. A character is represented as a single character string. A string is very much like a C or Java string.
含義字符串作爲您提到的標籤。
燁,非常感謝 – 2011-12-23 17:34:11
呀,這不是有效的JSON,blahblahblah ......就像每個人關心,如果它是有效還是無效。
至少我不在乎,我只是想解析它,所以我寫了jsonlite。
與Jsonlite,你可以這樣做:
var s = '{name: jsonlite, birthday: {year: 2013, month: 7, day: 7}, isGreat: true}';
var obj = jsonlite.parse(s);
將會產生完全相同的結果如下面的代碼:
var s = '{"name": "jsonlite", "birthday": {"year": 2013, "month": 7, "day": 7}, "isGreat": true}';
var obj = $.parseJSON(s);
不錯的:) +10「blahblahblah」:d – sulest 2015-09-10 17:00:42
使用正則表達式無效的JSON可以進行有效的JSON。 在下面的示例中,sFixed將是有效的JSON,可以解析:。
let s = '{identifier:"ID", label:"LABEL"}',
sFixed = s.replace(/(['"])?([a-zA-Z0-9_][a-zA-Z0-9_\s]*[a-zA-Z0-9_])(['"])?:/g, '"$2": '), //'{"identifier":"ID", "label":"LABEL"}'
obj = JSON.parse(sFixed);
代碼塊本身並不能提供一個很好的答案。請添加解釋(爲什麼它解決了問題,錯誤在哪裏等) – 2016-01-05 11:25:37
你不能得到格式正確的JSON嗎? – 2011-12-23 16:00:03
我猜你無法控制遠程服務器?即使您無法控制該服務器(通過電子郵件發送?),傳遞糟糕的JSON也是他們應該解決的問題。你可以發佈一個糟糕的JSON的例子嗎?也許有一個正則表達式的修復或者如果你絕對不能改變API,那麼它就會很快而且很髒。 – brandwaffle 2011-12-23 16:01:14
恐怕您必須使用eval – 2011-12-23 16:02:09