我正在将一些网络“服务”从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"}
答案 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格式返回,但在页面上呈现时会正确显示。