Say I have a class like
public class MyTestClass
{
public MyTestClass()
{
Testing = "check ' out";
}
public string Testing { get; set; }
}
And JavascriptSerializer/JsonNet serializers like :
public IHtmlString ToJsonNet(object value)
{
return new MvcHtmlString(JsonConvert.SerializeObject(value));
}
public IHtmlString ToJson(object value)
{
var json = new JavaScriptSerializer();
return new MvcHtmlString(json.Serialize(value));
}
Then in a view I have
@(Serializers.ToJsonNet(new MyTestClass()))
@(Serializers.ToJson(new MyTestClass()))
The JsonNet will return {"Testing":"check ' out"}, while the JavascriptSerializer will return {"Testing":"check \u0027 out"}. I wish to create a javascript object like
var model = $.parseJSON('@jsonString');
But this only works if the apostrophe is encoded. Otherwise, the apostrophe makes my javacript look like
var model = $.parseJSON('{"Testing":"check ' out"}');
which fails because the inserted apostrophe makes parseJSON
escape my string too early.
JavascriptSerializer encodes the apostrophe as \u0027 by default while JSON.NET (which I want to use) does not. How can I change JSON.NET to do this? Is there a setting I'm missing? Is there a different way I can parse my JSON string into javascript where the apostrophe is OK?
Insert JSON data into a table: To use an apostrophe or a single quotation mark (') in a value, add another single quotation mark after the first one.
U+0027 is Unicode for apostrophe (')
The System. Text. Json namespace provides functionality for serializing to and deserializing from JavaScript Object Notation (JSON). Serialization is the process of converting the state of an object, that is, the values of its properties, into a form that can be stored or transmitted.
The following answer indicates that the two should be equivalent. https://stackoverflow.com/a/5022386/1388165
If it is the parseJSON call failing, perhaps double quotes instead of single quotes in the argument would help.
Have you tried escaping the apostrophe with a "\"?
Something like Testing = "check \' out";
You should also take a look at this post, there seem to be some interesting answers for you here.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With