2011-02-16 72 views
6

我正在從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"}

回答

8

這應該是沒有任何問題的,因爲這兩個表示是等效的:

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

1

只要做到:

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

所以,如果你嘗試在JavaScript或節目,提醒在瀏覽器中,它會看起來像:

裏奇之家

1

U+0027是Unicode的單引號( ')

所以,特殊字符以Unicode返回,但在頁面上呈現時會正確顯示。