Javascript 将对象字符串化为“获取”\&引用;
我正在尝试对另一个stringify对象进行stringify。我正在将Javascript 将对象字符串化为“获取”\&引用;,javascript,json,stringify,Javascript,Json,Stringify,我正在尝试对另一个stringify对象进行stringify。我正在将\添加到内部对象 a = {} str = {'a': 'test'} a.str = JSON.stringify(str); console.log("=="+ (a)); console.log("strin " + JSON.stringify(a) ) // {"str":"{\"a\":\"test\&qu
\
添加到内部对象
a = {}
str = {'a': 'test'}
a.str = JSON.stringify(str);
console.log("=="+ (a));
console.log("strin " + JSON.stringify(a) ) // {"str":"{\"a\":\"test\"}"}
expected: {"str":"{"a":"test"}"}
有一个错误
str={'a':'test}
应该是
str={'a':'test'}
获取“”的原因很简单,因为它们正在转义双字符串
这是非法的:
“{”str:“{”a:“test”}”
这是合法的:
“{\“str\”:“{\“a\”:“test\”}”
您所期望的将不是有效的JSON
引号用于分隔JSON文本中的字符串
根据您的预期结果,JSON解析器将看到“{
,并认为这是整个字符串,然后a
将是一个错误
转义序列\“
是您如何说“这是字符串的一部分的引号”,而不是“这是字符串结尾的引号”
输出正常,没有问题
这就是说,嵌套JSON通常是一个坏主意。它解析起来更复杂,阅读起来也更难 通常,您应该创建完整的数据结构,然后将其字符串化
const a={};
常量str={
“a”:“测试”
};
a、 str=str;
const json=json.stringify(a,null,2);
console.log(`result:${json}`);
额外的斜杠只是转义字符,您可以在本页的部分中了解更多有关它的信息,该部分看起来像是创建测试用例时的错误。这不是所问的问题,也不会导致所描述的问题。