将服务端的一个对象输出给客户端js,客户端接收到的字符串里双引号被转义成“ "”了
发布于 6 年前 作者 huangshaohui 7992 次浏览 最后一次编辑是 5 年前 来自 问答

将服务端的一个对象输出给客户端js,客户端接收到的字符串里双引号被转义成“ "”了,导致将json字符串转换成json对象的时候报错。

// 后台:
res.render("index", {
	title: "首页",
    user: {
		name: "tom",
		age: 10
	}
});
// jade模板:
script(type="text/javascript").
	var UserJson = "#{JSON.stringify(user)}";
// 客户端:
var UserJson = "{"name":"tom","age":10}"; 
var User = eval("(" + UserJson + ")");	//这里明显会报错

现在的办法是在客户端用正则表达式将“ “”替换成”,然后再eval。 这里还有别的更好的办法么?谢谢!

2 回复

这种问题其实搜索官方教程肯定会有解释的。

https://github.com/jadejs/jade/blob/master/Readme_zh-cn.md#标签文本

!{JSON.stringify(user)}

模板引擎一般都有关闭转码的方法的 自豪地采用 CNodeJS ionic

回到顶部