Nói rằng tôi có một lớp học nhưEncoding Apostrophe với JSON.NET
public class MyTestClass
{
public MyTestClass()
{
Testing = "check ' out";
}
public string Testing { get; set; }
}
Và serializers JavascriptSerializer/JsonNet như:
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));
}
Sau đó, trong một lần xem tôi có
@(Serializers.ToJsonNet(new MyTestClass()))
@(Serializers.ToJson(new MyTestClass()))
Các JsonNet sẽ trả về {"Testing": "check 'out"}, trong khi JavascriptSerializer sẽ trả về {"Testing": "check \ u0027 out"}. Tôi muốn tạo đối tượng javascript như
var model = $.parseJSON('@jsonString');
Nhưng điều này chỉ hoạt động nếu dấu nháy đơn được mã hóa. Nếu không, các dấu nháy đơn làm javacript của tôi trông giống như
var model = $.parseJSON('{"Testing":"check ' out"}');
mà không thành công vì các dấu nháy đơn chèn làm parseJSON
thoát khỏi chuỗi của tôi quá sớm.
JavascriptSerializer mã hóa dấu nháy đơn là \ u0027 theo mặc định trong khi JSON.NET (mà tôi muốn sử dụng) thì không. Làm thế nào tôi có thể thay đổi JSON.NET để làm điều này? Tôi có thiếu thiết lập nào không? Có một cách khác nhau tôi có thể phân tích cú pháp chuỗi JSON của tôi vào javascript, nơi dấu nháy đơn là OK?
Phiên bản nào của jquery bạn đang sử dụng? – nemesv
@nemesv Phiên bản 1.7.1 – user1399487
bạn có thể giải quyết vấn đề với JSON.NET không? – CoffeeCode