use*_*487 11 jquery json.net razor asp.net-mvc-3
说我喜欢上课
public class MyTestClass
{
public MyTestClass()
{
Testing = "check ' out";
}
public string Testing { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
和JavascriptSerializer/JsonNet序列化器一样:
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));
}
Run Code Online (Sandbox Code Playgroud)
然后在我看来
@(Serializers.ToJsonNet(new MyTestClass()))
@(Serializers.ToJson(new MyTestClass()))
Run Code Online (Sandbox Code Playgroud)
JsonNet将返回{"Testing":"check'out"},而JavascriptSerializer将返回{"Testing":"check\u0027 out"}.我希望创建一个像javascript这样的对象
var model = $.parseJSON('@jsonString');
Run Code Online (Sandbox Code Playgroud)
但这只有在撇号被编码时才有效.否则,撇号使我的javacript看起来像
var model = $.parseJSON('{"Testing":"check ' out"}');
Run Code Online (Sandbox Code Playgroud)
因为插入的撇号parseJSON过早地使我的字符串逃脱而失败了.
JavascriptSerializer默认将撇号编码为\ u0027,而JSON.NET(我想使用)却没有.如何更改JSON.NET来执行此操作?我缺少一个设置吗?有没有不同的方法我可以将我的JSON字符串解析为撇号正常的javascript?