说我有一个像
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"}。我希望创建一个像
var model = $.parseJSON('@jsonString');
但这仅在撇号被编码时才有效。否则,撇号使我的 javacript 看起来像
var model = $.parseJSON('{"Testing":"check ' out"}');
失败是因为插入的撇号使parseJSON
我的字符串过早转义。
JavascriptSerializer 默认将撇号编码为 \u0027 而 JSON.NET(我想使用)没有。我怎样才能改变 JSON.NET 来做到这一点?有没有我缺少的设置?有没有一种不同的方法可以将我的 JSON 字符串解析为 javascript,其中撇号是可以的?