【发布时间】:2014-10-14 02:08:00
【问题描述】:
我正在开发一个 ASP.NET 网页应用程序,我发现 Javascript JSON.parse() 方法无法解析 .NET Json.Encode() 方法的 JSON 输出。我的具体问题是与符号 (&) 字符(Unicode U+0026)有关。
例如,执行这段代码:
object SomeObject = new { SomeProperty = "A&B" };
Response.Write(Json.Encode(SomeObject));
在我的 .cshtml 文件中导致响应中的以下内容:
{"SomeProperty":"A\u0026B"}
这会导致我的 JavaScript 中出现SyntaxError: Unexpected token u:
function SomeCallback(aRequest) {
if (aRequest.status === 200) {
var lResponseJSON = JSON.parse(aRequest.Response); // Error on this line
}
}
当涉及特殊字符时,如何让 .NET JSON 编码和 JS JSON 解码发挥出色?
(最好不要在解析字符串化的 JSON 以替换 unicode 编码之前手动检查它)
编辑:可能值得一提的是,使用 Json.Write(SomeObject, Response.Output) 而不是 Response.Write(Json.Encode(SomeObject)) 对 JSON 输出没有影响。
【问题讨论】:
标签: c# javascript json unicode asp.net-webpages