如何传递JSON字符串作为参数
How to pass a JSON string as an argument?
假设我有一个非常简单的方法,如下所示:
var foo = function (str) {
console.log(str); //{"Field Name": "Value With "Escaped" Content"}
JSON.parse(str); //fails
}
foo('{"Field Name": "Value With '"Escaped'" Content"}');
传递的参数具有故意的反斜杠(字符串来自第三方),但是,一旦字符串传递给函数,它们就不存在了(请参阅内联注释)。
我可以避免这个问题,而不手动双转义字符串?为什么不在字符串本身周围使用单个斜杠来避免这个问题?是否可以检索原始输入字符串?
'
字符是JSON转义字符,但它们也是JavaScript转义字符。
您有一个JavaScript字符串字面值。当它被JavaScript编译器解析时,'"
将被解释为"
。
JSON解析器因此传递"
而不是'"
。
我可以避免这个问题,而不手动双转义字符串?
字符串需要进行双转义。您可能需要或不需要手动执行此操作,这取决于字符串的来源。
为什么不在字符串本身周围使用单个斜杠来避免这个问题?
因为JavaScript的语言设计并没有说'
字符不是单引号字符串中的转义字符
相关文章:
- 从查询字符串参数推断出正确的数据类型
- 如何使用JQuery在HTML中创建包含字符串参数的引号的onclickjavascript链接
- 从带参数的字符串变量调用函数中的函数
- Javascript:用while循环在给定的count参数中重复一个字符串
- 如何格式化match()参数以定位电子邮件中的字符串
- 将JSON字符串转换为函数参数
- 如何用javascript替换Jquery字符串上的新参数
- 模版启动错误-类型错误(“参数”url'必须是字符串,而不是“+类型的url”)
- 在 URL 字符串中传递参数字符串
- 如何在附加的 html 中的字符串上连接 javascript 函数中的参数字符串
- jQuery:从参数字符串设置表单状态
- 使用 cookie 传递 URL 参数字符串
- 寻找一个正则表达式来解析 JS 的参数字符串
- 有必要限制node.js中GET请求参数字符串的大小吗
- 使用jquery获取javascript中的参数字符串
- 使用JavaScript更改url参数字符串
- 如何在提交GET表单后将变量插入到生成的url参数字符串中
- JavaScript:向JavaScript函数发送以逗号分隔的参数字符串
- 无法通过XMLHttpRequest发送参数字符串
- 从Javascript中获取url参数字符串