JSON 和 Javascript 的编码是否不同?我有一个嵌入在一些 JSON 中的 javascript 片段。然而,当 JavaScript 中出现特殊字符时(例如“(”在 JS 片段中表示为\x28),就会导致 JSON 无效。
在上面的示例中,只有当我将 '(' 更新为 '(' 而不是 '\x28' 时,才会生成有效的 JSON。第一个表示形式是十六进制。而第二个表示形式是有效的 HTML。I'我不熟悉编码类型。
有人可以帮助我了解我需要在 Javascript 上使用哪种编码,以确保它始终生成正确的 JSON 格式吗?
我在下面提供了一个粗略的示例。特殊字符是 '\x28rt',表示 '(rt'。在 JS 中,它被编码为\x28rt。但是,要使其成为有效的 JSON,它需要是 ''rt
{
"class":"myType",
"id":"testId",
"javascript":"function testMethod() {var v2 = function (a, b, e) {return e(a, b);};}var v1 = 'somevalue';if (v2((v1), ('\x28rt'), function (a, b) {if (a == undefined || a == null) {return false;}return a === b;})) {alert('test1');};} else {alert('test2');};}}",
"name":"Step1"
}
最佳答案
\x28
是ascii转义,你试过Unicode转义\u0028
吗? http://www.json.org/表示 char 字符串可以包含任何 Unicode 字符。
关于Javascript 编码对 JSON 无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23946485/