Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

JsonResult parsing special chars as \u0027 (apostrophe)

I am in the process of converting some of our web "services" to MVC3 from WCF Rest.

Our old web services returned JSON from POCO's just fine using: [WebGet(.... ResponseFormat=WebMessageFormat.Json]

In my controller to return back a simple poco I'm using a JsonResult as the return type, and creating the json with Json(someObject, ...).

In the WCF Rest service, the apostrophes and special chars are formatted cleanly when presented to the client.

In the MVC3 controller, the apostrophes appear as \u0027.

Any thoughts? I'm new to serializing JSON so any pointers would be a huge help.

Example response: WCF Rest: {"CategoryId":8,"SomeId":6,"Name":"Richie's House"}

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

like image 719
Richard Avatar asked Feb 16 '11 20:02

Richard


3 Answers

That shouldn't be any problem, as both representations are equivalent:

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

alerts Richie's House.

like image 144
Darin Dimitrov Avatar answered Nov 07 '22 08:11

Darin Dimitrov


Just do:

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

So, if you try to alert in javascript or show in a browser, it will appears like:

Richie's House

like image 36
Alexandre TRINDADE Avatar answered Nov 07 '22 07:11

Alexandre TRINDADE


U+0027 is Unicode for apostrophe (')

So, special characters are returned in Unicode but will show up properly when rendered on the page.

like image 1
Venkata Krishna Avatar answered Nov 07 '22 09:11

Venkata Krishna