[英]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.