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”}”,你的意思是你根本不能更改外部引号还是不能使用单引号?