2011-02-16 13 views
6

Estoy en el proceso de convertir algunos de nuestros "servicios" web a MVC3 de WCF Rest.JsonResult analizando caracteres especiales como u0027 (apóstrofo)

Nuestros viejos servicios web JSON devueltos desde bien de POCO usando: [WebGet(.... ResponseFormat=WebMessageFormat.Json]

En mi controlador para volver hacia atrás un poco sencilla estoy usando un JsonResult como el tipo de retorno, y la creación de la JSON con Json(someObject, ...).

En el servicio WCF Rest, los apóstrofos y los caracteres especiales se formatean limpiamente cuando se presentan al cliente.

En el controlador MVC3, los apóstrofos aparecen como \ u0027.

¿Alguna idea? Soy nuevo en la serialización de JSON, así que cualquier sugerencia sería de gran ayuda.

Ejemplo de respuesta: WCF Rest: {"CategoryId":8,"SomeId":6,"Name":"Richie's House"}

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

Respuesta

8

que no debe haber ningún problema, ya que ambas representaciones son equivalentes:

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

alertas Richie's House.

+3

Oh ... mi ... Dios mío ..... Mi complemento de navegador en mi escritorio solo estaba formateándolo para que sea legible ... grrrr Necesito más café. Perdón por hacerte perder tiempo. – Richard

1

Just Do:

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

Por lo tanto, si se intenta alertar en javascript o mostrar en un navegador, lo hará aparece como:

de Richie Casa

1

U+0027 es Unicode para apóstrofe (')

Por lo tanto, los caracteres especiales se devuelven en Unicode pero se mostrarán correctamente cuando se procesen en la página.