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
。
答
只要做到:
yourObject.Name = yourObject.Name.Replace("'", "\\u027");
所以,如果你尝试在JavaScript或节目,提醒在浏览器中,它会看起来像:
里奇之家
答
U+0027
是Unicode的单引号( ')
所以,特殊字符以Unicode返回,但在页面上呈现时会正确显示。
哦......我的天哪.....我的桌面上的浏览器插件只是格式化它使其可读... grrrr我需要更多的咖啡。对不起,浪费你的时间。 – Richard 2011-02-16 21:42:37