解析特殊字符的JsonResult为\ u0027(撇号)

时间:2011-02-16 20:56:33

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

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

我们的旧网络服务从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"}

3 个答案:

答案 0 :(得分:10)

这不应该是任何问题,因为两种表示都是等同的:

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

提醒Richie's House

答案 1 :(得分:2)

只是做:

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

因此,如果您尝试在javascript中提醒或在浏览器中显示,则会显示如下:

Richie's House

答案 2 :(得分:1)

U+0027是撇号(')

的Unicode

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