Tôi có một tập các đối tượng nghiệp vụ phức tạp mà tôi muốn tuần tự hóa thành Json để sử dụng trong một dịch vụ web. Tôi hiện đang sử dụng DataContractJsonSerializer để sản phẩm Json, nhưng nó balks trên deserialization bởi vì XmlReader mặc định không thể xử lý Base64 chuỗi.serialization JSON.NET nếu ghi đè ToString
Sau khi đọc nhiều bài đánh giá tích cực của Json.Net, tôi đã quyết định thử. Đáng ngạc nhiên, trường hợp đơn giản nhất tạo ra đầu ra sai nếu đối tượng nghiệp vụ ghi đè phương thức ToString(). Thay vì tạo JSON, nó đơn giản phát ra giá trị chuỗi.
Ví dụ: câu lệnh sau chỉ tạo chuỗi, khi trình nối tiếp xuất hiện để xem đối tượng dưới dạng chuỗi đơn giản.
public class MyClass {
public string Title{get;set;}
public override ToString(){ return Title; }
public string ToJson(){
return JsonConvert.SerializeObject(this);
}
}
Thay vì đầu ra định dạng json, tất cả những gì tôi nhận được là chuỗi tiêu đề. Tôi có phải đánh dấu đối tượng theo một cách đặc biệt nào đó để tránh điều này không? Vì phân cấp đối tượng nghiệp vụ bao gồm nhiều đối tượng ghi đè ToString(), tôi thà tránh phải giới thiệu các thuộc tính đặc biệt, v.v.
Mã của bạn hoạt động tốt, chỉ một thứ gọi 'ToJson' trong phương thức' ToString'. –