JSON解析字符串文字中的双引号 [英] JSON parse double quotes in string literal

查看:344
本文介绍了JSON解析字符串文字中的双引号的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I am having problem parsing quotes in string literal.

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

在控制台中,这将给出错误未捕获的异常". 我期望:

In console, this gives an error 'Uncaught exception'. I am expecting:

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

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

如果我将stringify结果分配给变量,然后 解析该变量.但是,如果我使用上面的字符串文字,则不会.

It works ok if I assign stringify result to variable and then parse that variable. But not if I use string literal as above.

谢谢.

我的代码:

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\\""

Remember that you are escaping two string literals: one for declaring the property and one for declaring the variable (lit). So you need to escape your escape character: "test \\"1\\""

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

var thaw2 = JSON.parse(lit);

这篇关于JSON解析字符串文字中的双引号的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆