[英]json javascript: escape double quotes? concat json with other string
在JS中,我有一個字典,使用json(json2)進行字符串化:
my_dict = {"1":"hi you'll", "2":"hello"};
as_string = JSON.stringify(my_dict);
我需要將此作為值添加到表單,但是表單本身以字符串開頭:
var my_form = '<form><input value = "'+as_string+'"></form>'
my_form是一個字符串,因為它以DOM的形式添加到文檔中(創建節點,添加innerHTML,在文檔中插入)
問題是雙引號搞砸了-my_dict中有引號,而my_form中有引號。 但是json是否不應該逃脫雙重qoutes? 那不是它的一部分嗎? 還是我需要這樣做? 還是有其他方法?
您需要使用RegExp編碼HTML,f.ex的字符串:
as_string = JSON.stringify(my_dict).replace(/\"/g,'"');
或盡可能使用DOM操作。
my_form是一個字符串,因為它以DOM的形式添加到文檔中(創建節點,添加innerHTML,在文檔中插入)
通過將字符串粉碎在一起來生成代碼要痛苦得多,這值得。 不要這樣 使用標准DOM,而不是innerHTML。 那會照顧您的逃生。
var frm = document.createElement('form');
var ipt = document.createElement('input');
ipt.value = as_string;
frm.appendChild(ipt);
但是json是否不應該逃脫雙重qoutes?
編碼為JSON將轉義JSON格式的引號。 然后,您將JSON嵌入HTML中,因此也需要對HTML進行轉義。 (或者,按照我上面的建議,繞過HTML並直接進行DOM操作)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.