JSON解析字符串文本中的双引号

JSON parse double quotes in string literal

本文关键字:文本 字符串 JSON      更新时间:2023-09-26

我在解析字符串文本中的引号时遇到问题。

var lit = '{"foo":"test '"1'"","bar":"test 2"}';

在控制台中,这会给出一个错误"未捕获异常"。我期待:

Object {foo: "test "1"", bar: "test 2"}

这是我的小提琴https://jsfiddle.net/bruceradtke/kor8amm5/4/

如果我将字符串结果分配给变量,然后解析该变量。但如果我使用字符串文字如上。

谢谢。

我的代码:

var myobject = {};
myobject.foo = "test '"1'"";
myobject.bar = "test 2";
var sresult = JSON.stringify(myobject);
console.log('stringify=' + sresult);
// OK
var thaw = JSON.parse(sresult);
console.log( thaw);
var lit = '{"foo":"test '"1'"","bar":"test 2"}';
console.log(lit);
// Broken
var thaw2 = JSON.parse(lit);

请记住,您正在转义两个字符串文字:一个用于声明属性,另一个用于宣布变量(lit)。所以你需要逃离你的逃生角色:"test ''"1''""

var lit = '{"foo":"test ''"1''"","bar":"test 2"}';
console.log(lit);
var thaw2 = JSON.parse(lit);