转义JSON以避免更改插入string
我有下面的jsonstring,应该直接插入到一个列中的数据库中:
const jsString = JSON.stringify({"escaping":"d\"on't"}); const insertion = [{"a":2,"json":jsString}]; const query = pgp.helpers.insert(insertion,["a","json"],"tbl");
然而实际上结果在数据库中的是:
{"escaping":"d"on't"}
删除在\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
这将是有益的,因为如果我的有效json仍然如此,那将是很好的。
- 不要将数据串入到JSON中,直接使用它
- 将列格式设置为JSON,使用
:json
修饰符
const data = {escaping: "d\"on't"}; const insertion = [{a:2, json:data}]; const query = pgp.helpers.insert(insertion, ["a", "json:json"], "tbl");
js const jsString = JSON.stringify({"escaping":"d\\\"on't"});
这个stringconst jsString = JSON.stringify({"escaping":"d\\\"on't"});
会导致这个{"escaping":"d\\\"on't"}
而在js const jsString = JSON.stringify({"escaping":"don't"});
这个stringconst jsString = JSON.stringify({"escaping":"don't"});
会导致这个{"escaping":"don't"}