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

问题描述:

我正在从WCF Rest将我们的一些网络“服务”转换为MVC3。 [WebGet(.... ResponseFormat=WebMessageFormat.Json]JsonResult解析特殊字符为 u0027(撇号)

在我的控制器即可返回一个简单的POCO我使用的是JsonResult作为返回类型,并创建与Json(someObject, ...)的JSON:

我们旧的Web服务使用返回的JSON从POCO的就好了。

在WCF Rest服务中,撇号和特殊字符在呈现给客户端时被格式化得很干净。

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

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

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

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

这应该是没有任何问题的,因为这两个表示是等效的:

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

警报Richie's House

+3

哦......我的天哪.....我的桌面上的浏览器插件只是格式化它使其可读... grrrr我需要更多的咖啡。对不起,浪费你的时间。 – Richard 2011-02-16 21:42:37

只要做到:

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

所以,如果你尝试在JavaScript或节目,提醒在浏览器中,它会看起来像:

里奇之家

U+0027是Unicode的单引号( ')

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