2011-02-16 5 views
6

Sono in procinto di convertire alcuni dei nostri "servizi" Web in MVC3 da WCF Rest.JsonResult che analizza caratteri speciali come u0027 (apostrofo)

I nostri servizi web vecchi restituiti JSON dal bene di POCO utilizzando: [WebGet(.... ResponseFormat=WebMessageFormat.Json]

Nel mio controller per tornare indietro di un semplice poco sto usando un JsonResult come tipo di ritorno, e la creazione del JSON con Json(someObject, ...).

Nel servizio Riposo WCF, gli apostrofi e caratteri speciali vengono formattati in modo pulito quando vengono presentati al client.

Nel controller MVC3, gli apostrofi vengono visualizzati come \ u0027.

Qualche idea? Sono nuovo nel serializzare JSON, quindi qualsiasi suggerimento sarebbe di grande aiuto.

Esempio di risposta: WCF Riposo: {"CategoryId":8,"SomeId":6,"Name":"Richie's House"}

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

risposta

8

che non dovrebbe essere alcun problema, in quanto entrambe le rappresentazioni sono equivalenti:

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

avvisi Richie's House.

+3

Oh ... mio ... cavolo ..... Il mio addon del browser sul mio desktop è stato semplicemente formattato per renderlo leggibile ... grrrr Ho bisogno di più caffè. Mi spiace perdere tempo. – Richard

1

Basta fare:

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

Quindi, se si tenta di avvisare in javascript o mostrare in un browser, sarà appare come:

di Richie Casa

1

U+0027 è Unicode per apostrofo (')

Quindi, i caratteri speciali vengono restituiti in Unicode ma verranno visualizzati correttamente quando sottoposti a rendering sulla pagina.