我搜索並閱讀了大部分相關主題,但他們不是我正在尋找的。php json_encode&jquery parseJSON單引號問題
我有一個JSON字符串enocded與json_encode
PHP函數:
{"casts":["Matthew Modine","Adam Baldwin","Vincent D'Onofrio"],"year":1987}
我使用jQuery擺在適當的字段中的值也是如此,在測試的情況下,我沒了下文:
<script>
var obj = jQuery.parseJSON('<?=$data?>');
console.log(obj);
</script>
假設$的數據是這樣的:
$data =
<<<END
{"casts":["Matthew Modine","Adam Baldwin","Vincent D'Onofrio"],"year":1987}
END;
什麼谷歌chromeç onsole產生在這種情況下:
Uncaught SyntaxError: Unexpected identifier
然而,當我使JSON編碼的字符串的變化 - 將反斜槓到單引號:
{"casts":["Matthew Modine","Adam Baldwin","Vincent D\'Onofrio"],"year":1987}
控制檯輸出是正常:
Object {casts: Array[3], year: 1987}
casts: Array[3]
year: 1987
問題:這是控制檯中的錯誤嗎?我認爲逃避或更換'
與\'
將是如此的骯髒!
修訂
其實$數據值來自json_encode($var)
和$ VAR是一個數組!
$data = json_encode($var);
json字符串不是手工構建的。請參閱更新。 – revo
+1不需要解析它--json_encode的輸出已經是有效的JavaScript。 – cmbuckley
這將是很好的指定'JSON_HEX_TAG | JSON_HEX_AMP'雖然。至少前者可能需要滿足[腳本元素內容的限制](http://www.whatwg.org/specs/web-apps/current-work/multipage/scripting-1.html#restrictions -for-contents-of-script-elements),如果文檔可以被解析爲XML,則兩者都是必需的。 – PleaseStand