簡體   English   中英

帶單引號和雙引號的 JSON.parse 字符串?

[英]JSON.parse string with single and double quotes?

我將數組保存為 json 並在加載時再次解析它。 但是,在添加帶有單引號和雙引號的 HTML 后,這已停止工作。

我怎樣才能逃避引號?

JSON.parse('[["",null,null,null,null,null,"","","<span onclick=insertRow()><i class='fa fa-plus-circle fa-lg'></i></span>"]]');

uncaught SyntaxError: missing ) after argument list

編輯:

我的字符串使用 JSON.stringify 保存在數據庫中。 它以以下格式結束:

[["ad",null,true,false,true,false,"","","<span onclick=insertRow()><i class='fa fa-plus-circle fa-lg'></i></span>"]]

當我再次加載它時,我會這樣做:

var phpsave = JSON.parse('<?php echo $result->save; ?>');

如果我在保存前轉義單引號,則在加載時轉義就會消失。

您正在動態生成 Javascript 源代碼。 您需要確保您生成的內容在語法上是有效的。 從 PHP 生成有效 Javascript 文字的最簡單方法是使用json_encode

var phpsave = JSON.parse(<?php echo json_encode($result->save); ?>);
// look ma, no quotes!   ^                                       ^

但是等等,您不是將JSON傳遞給您的 Javascript 嗎? JSON 不是已經有效的 Javascript 嗎? 為什么,是的,是的。 所以你可以省略這一步:

var phpsave = <?php echo $result->save; ?>;

當然,你可能想確保你真的通過有效的JSON這里首先你開始輸出隨機Javascript代碼之前。

你可以像

 var r = JSON.parse('[["",null,null,null,null,null,"","","<span onclick=insertRow()><i class=\'fa fa- plus - circle fa- lg\'></i></span>"]]');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM