javascript - 如何正确评估包含带有特殊字符的 JSON.parse 表达式的 Javascript 字符串?
问题描述
我需要评估以下列方式创建的 JS 表达式
function createExprs(obj){
var decl = "var i = ";
var value = JSON.stringify(obj);
var exprs = decl + "JSON.parse('" + value + "')";
return exprs;
}
var i = createExprs({1:2});//i = "var i = JSON.parse('{"1":4}')"
eval(i); // works fine
但是,当 obj 包含任何特殊字符时它会失败
var i = createExprs("today\\.article") \\i="var i = JSON.parse('"today\\.article"')"
eval(i) // Unexpected token . in JSON
解决方案
你需要逃避"
:
"var i = JSON.parse('\"today.article\"')"
推荐阅读
- swift - Swift:从视频 URL 获取缩略图通常会失败并出现错误:“操作无法完成”
- serialization - 使用fastJson时如何使用@type反序列化Json字符串以级联对象图
- django - NonType 对象没有属性 user_email
- c++ - C++ 不和谐 webhook http 帖子
- javascript - 使 Slider 以随机顺序移动到下一张幻灯片
- jquery - 进度条未显示 spring mvc 中的确切值
- postgresql - SequelizeConnectionAcquireTimeoutError 无处不在
- r - 具有 ggplot2 和 ggrepel 的时间序列箱线图中类似异常值的唯一标签
- laravel - 如何避免用户在控制器处理过程中需要长时间等待
- c - 在这种情况下 for 循环如何运行?