Tôi có một đối tượng chứa một số thuộc tính là Danh sách các chuỗi List<String>
hoặc từ điển của chuỗi Dictionary<string,string>
. Tôi muốn serialize các đối tượng để json sử dụng Json.net và tôi muốn có số tiền ít nhất của văn bản được tạo ra.Cách làm cho Json.Net bỏ qua việc tuần tự hóa các bộ sưu tập trống
Tôi đang sử dụng DefaultValueHandling và NullValueHandling để đặt giá trị mặc định thành chuỗi và số nguyên. Nhưng làm thế nào tôi có thể xác định DefaultValueHandling để bỏ qua thuộc tính trong đầu ra tuần tự nếu nó được khởi tạo để trống List<String>
hoặc Dictionary<string,string>
?
Một số lượng mẫu là:
{
"Value1": "my value",
"Value2": 3,
"List1": [],
"List2": []
}
Tôi muốn có được một kết quả mà bỏ qua hai danh sách trong ví dụ trên, bởi vì chúng được thiết lập với giá trị mặc định của một danh sách trống.
Bất kỳ trợ giúp sẽ được đánh giá cao
Tôi không nghĩ điều đó là có thể. Tôi chắc chắn nó sẽ không quá khó để bỏ qua các giá trị 'null' nhưng điều đó sẽ yêu cầu bạn thực hiện các thay đổi ở nơi khác để những tham chiếu đó là null thay vì trỏ đến một danh sách trống. – evanmcdonnal
Tôi chắc chắn điều này có thể được thực hiện với một công cụ chuyển đổi tùy chỉnh (bằng cách thực hiện các lớp trừu tượng JsonConverter), Nhưng tôi quá lười biếng bây giờ để cung cấp một mã. – I4V
Tôi tìm thấy bài viết này có chứa một tham chiếu đến IContractResolver. http://james.newtonking.com/archive/2009/10/23/efficient-json-with-json-net-reducing-serialized-json-size.aspx Điều đó có vẻ là một hướng dẫn tốt để tìm cách triển khai điều này. – agarcian