0
当我在JSON字符串中通过\"
转义双引号时,解析器失败。但是,当我使用JSON.stringify
时,它能够以某种方式正确地转义字符串。JSON字符串中是否支持双引号?
我怀疑我没有正确地转义双引号。查看代码以获取更多细节。
var data = {
"singleQuoteHtml": "<span class='qwer'>content</span>",
"doubleQuoteHtml": "<span class=\"qwer\">content</span>",
"singleQuote": "'hi'",
"doubleQuote": "\"hi\""
};
var dataString = '{"singleQuoteHtml": "<span class=\'qwer\'>content</span>",'
+ '"doubleQuoteHtml": "<span class=\"qwer\">content</span>",'
+ '"singleQuote": "\'hi\'",'
+ '"doubleQuote": "\"hi\"'
+ '}';
function Parse()
{
//Stringify is capable of creating single quotes and double quotes
console.log(JSON.parse(JSON.stringify(data)));
//When I escape double quotes myself the parser fails
//Uncomment to see failure
//console.log(JSON.parse(dataString));
}
<button onclick="Parse();">Parse JSON </button>
为什么你想使用字符串连接创建'dataString'?为什么不创建一个普通的JavaScript对象,然后使用'JSON.stringify()'创建'dataString',这将解决转义时可能发生的许多问题。 –
实际的代码是基于Java的。数据可用于我的是一个普通的旧字符串,而不是Java对象。所以我不确定如何在Java中使用这些约束进行串联。但你可能是对的。一旦发现问题,可能会少一点头痛。 –
在Java中,您可以避免通过为'TestClass'添加'String'属性并通过'String jsonRawString = objectMapper.writeValueAsString(testObject)'反序列化TestClass'来手动转义字符串' –