Javascript 带所有双引号的JSON.parse

Javascript 带所有双引号的JSON.parse,javascript,json,Javascript,Json,下面的代码片段有一个问题 我的设想是: var lit=“{“foo”:“测试\\”1\\,“bar”:“测试2”}”; 控制台日志(lit); var saw2=JSON.parse(lit); 控制台日志(2)对内部双引号进行转义 var lit=“{\'foo\”:\'test\\\\\'1\\\”,\'bar\':\'test 2\'”; 控制台日志(lit); var saw2=JSON.parse(lit); 控制台日志(2)对内部双引号进行转义 var lit=“{\'foo

下面的代码片段有一个问题

我的设想是:

var lit=“{“foo”:“测试\\”1\\,“bar”:“测试2”}”;
控制台日志(lit);
var saw2=JSON.parse(lit);

控制台日志(2)对内部双引号进行转义

var lit=“{\'foo\”:\'test\\\\\'1\\\”,\'bar\':\'test 2\'”;
控制台日志(lit);
var saw2=JSON.parse(lit);

控制台日志(2)对内部双引号进行转义

var lit=“{\'foo\”:\'test\\\\\'1\\\”,\'bar\':\'test 2\'”;
控制台日志(lit);
var saw2=JSON.parse(lit);

控制台日志(2)对最外层边界使用单引号而不是双引号

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

console.log(lit);

var thaw2 = JSON.parse(lit);
console.log(thaw2);

对最外层边界使用单引号而不是双引号

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

console.log(lit);

var thaw2 = JSON.parse(lit);
console.log(thaw2);

问题原因:当双引号用于定义字符串并用作字符串的一部分时,它会将其视为右引号

要解决此问题,请执行以下操作: 选项1:使用单引号开始和结束字符串

var lit = '{"foo":"test \\"1\\"","bar":"test 2"}';
如果你想在字符串中使用单引号,这将不起作用。 在这种情况下,使用选项2

选择2:逃跑。 使用\'或\'转义字符

Eg: var lit = '{\'foo\':"test \\"1\\"","bar":"test 2"}'; (Escaping single quote)
var lit = "{\"foo\":\"test \\\"1\\\"\",\"bar\":\"test 2\"}"; (escaping double quote)

问题原因:当双引号用于定义字符串并用作字符串的一部分时,它会将其视为右引号

要解决此问题,请执行以下操作: 选项1:使用单引号开始和结束字符串

var lit = '{"foo":"test \\"1\\"","bar":"test 2"}';
如果你想在字符串中使用单引号,这将不起作用。 在这种情况下,使用选项2

选择2:逃跑。 使用\'或\'转义字符

Eg: var lit = '{\'foo\':"test \\"1\\"","bar":"test 2"}'; (Escaping single quote)
var lit = "{\"foo\":\"test \\\"1\\\"\",\"bar\":\"test 2\"}"; (escaping double quote)

为什么一开始就有无效的字符串文本?我会把重点放在修复上,因为目前你的源代码无法正常工作-试图“修复”被破坏的代码将涉及其中,而且很容易出错。你检查过这个吗?当你说不能改为单引号时,你能用这个“{”foo“:“test\\”1\\”,“bar“:“test 2”}”,你的意思是根本不能更改外部引号还是不能使用单引号?为什么一开始就有无效的字符串文字?我会把重点放在修复上,因为目前你的源代码无法正常工作-试图“修复”被破坏的代码将涉及其中,而且很容易出错。你检查过这个吗?当你说不能改为单引号时,你能用这个“{”foo“:“test\\”1\\”,“bar“:“test 2”}”,你的意思是你根本不能更改外部引号还是不能使用单引号?