说我有一个像编码撇号与JSON.NET
public class MyTestClass
{
public MyTestClass()
{
Testing = "check ' out";
}
public string Testing { get; set; }
}
而像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));
}
然后在视图中我有
@(Serializers.ToJsonNet(new MyTestClass()))
@(Serializers.ToJson(new MyTestClass()))
的JsonNet将返回{“Testing”:“check'out”},而JavascriptSerializer将返回{“Testing”:“check \ u0027 out”}。我希望创建一个JavaScript对象,如
var model = $.parseJSON('@jsonString');
但是,这仅适用于撇号编码。否则,撇号让我javacript看起来像
var model = $.parseJSON('{"Testing":"check ' out"}');
,因为插入的撇号,使parseJSON
太早逃不过我的字符串,它失败。
默认情况下,JavascriptSerializer将撇号编码为\ u0027,而JSON.NET(我想使用)不会。我如何改变JSON.NET来做到这一点?有没有我错过的设置?有没有一种不同的方式,我可以将我的JSON字符串解析为JavaScript,其中的撇号正确吗?
jQuery的哪个版本您使用的? – nemesv
@nemesv版本1.7.1 – user1399487
你能解决与JSON.NET的问题? – CoffeeCode