【问题标题】:JsonResult parsing special chars as \u0027 (apostrophe)JsonResult 将特殊字符解析为 \u0027(撇号)
【发布时间】:2011-02-16 20:56:33
【问题描述】:

我正在将我们的一些网络“服务”从 WCF Rest 转换为 MVC3。

我们的旧 Web 服务从 POCO 返回 JSON 就好了,使用: [WebGet(.... ResponseFormat=WebMessageFormat.Json]

在我的控制器中返回一个简单的 poco,我使用 JsonResult 作为返回类型,并使用 Json(someObject, ...) 创建 json。

在 WCF Rest 服务中,撇号和特殊字符在呈现给客户端时格式清晰。

在 MVC3 控制器中,撇号显示为 \u0027。

有什么想法吗?我是序列化 JSON 的新手,所以任何指针都会有很大帮助。

示例响应: WCF 休息: {"CategoryId":8,"SomeId":6,"Name":"Richie's House"}

MVC3: {"CategoryId":8,"SomeId":6,"Name":"Richie\u0027s House"}

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-3 json


    【解决方案1】:

    这应该没问题,因为两种表示是等价的:

    var a = {"CategoryId":8,"SomeId":6,"Name":"Richie\u0027s House"};
    alert(a.Name);
    

    提醒Richie's House

    【讨论】:

    • 哦……我的……天哪……我桌面上的浏览器插件只是对其进行格式化以使其可读……我需要更多的咖啡。很抱歉浪费您的时间。
    【解决方案2】:

    只要做:

    yourObject.Name = yourObject.Name.replace("'", "\\u027");
    

    因此,如果您尝试在 javascript 中发出警报或在浏览器中显示,它会显示为:

    里奇的房子

    【讨论】:

      【解决方案3】:

      U+0027 是撇号 (') 的 Unicode

      因此,特殊字符以 Unicode 格式返回,但在页面上呈现时会正确显示。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-05-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-02-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多