Tôi có một lớp POCO đang được gửi tới trình duyệt dưới dạng chuỗi JSON trong .NET 3.5 sp1. Tôi chỉ sử dụng serialization mặc định JSON và tôi có một số lĩnh vực mà tôi muốn bỏ qua. Tôi muốn đặt một thuộc tính tương tự như [System.Xml.Serialization.XmlIgnore] vào chúng để chúng không được tuần tự hóa.Bỏ qua một trường trong quá trình tuần tự hóa JSON JSON; tương tự như [XmlIgnore]?
Trả lời
tôi sử dụng thuộc tính ScriptIgnore trên mô hình của tôi như vậy:
public class Item
{
[ScriptIgnore]
public Item ParentItem { get; set; }
}
Trong tình huống đặc biệt này, tôi đã nhận được một lỗi tham chiếu vòng tròn từ serializer Json, vì vậy tôi chỉ đơn giản là bỏ qua nó. Tôi là asking a similar question here on SO khi tôi được bật sự khác biệt giữa Mô hình và ViewModel.
[ScriptIgnore]
là huckaberry của bạn.
+1 để tham khảo Tombstone. – jrummell
Nó thực sự là "Huckle Bearer", nhưng tôi sẽ cung cấp cho bạn một +1 cho nỗ lực và bộ phim. :) –
Câu trả lời ban đầu là chính xác, anh ta nói "huckleberry", không phải là "người giấu giếm". http://www.imsdb.com/scripts/Tombstone.html – heisenberg
Bạn chỉ cần thêm [ScriptIgnore(ApplyToOverrides = true)]
vào tệp mẫu văn bản (.tt) của mình.
Dưới đây là một phần của mẫu văn bản của tôi trước khi
#>
<#=codeStringGenerator.NavigationProperty(navigationProperty)#>
<#
Khi tôi chèn mã dòng phía trên codeStringGenerator
lớp tự động của tôi tạo ra và nhìn như thế này:
[ScriptIgnore(ApplyToOverrides = true)]
public virtual ICollection<Currency> Currencies { get; set; }
Tôi cũng cần thiết để sửa đổi chức năng UsingDirectives
để chèn "using System.Web.Script.Serialization;"
'ApplyToOverrides' có vẻ rất quan trọng đối với thuộc tính ảo – Todd
Đặt thuộc tính làm nội bộ. Tùy thuộc vào cấu trúc của bạn, mặc dù. Hãy xem xét.
- 1. Làm thế nào để bỏ qua tuần tự hóa trường tại JSON marshalling trong DataSnap?
- 2. Danh sách tuần tự hóa thành JSON
- 3. Tuần tự hóa JSON JSON - thực hành tốt nhất
- 4. Tên khác nhau của thuộc tính JSON trong quá trình tuần tự hóa và deserialization
- 5. Thư viện XML tương tự như simplejson/json? - Python
- 6. Tại sao Gson.toJson tuần tự hóa một trường chung thành một đối tượng JSON trống?
- 7. Thư viện JSON Erlang: hiệu suất tuần tự hóa?
- 8. Gson thêm trường trong quá trình tuần tự
- 9. JIT. Cách tốt nhất để tuần tự hóa thành json
- 10. Khuôn khổ thực thể: Tuần tự hóa/Deserialize cột JSON đằng sau hậu trường
- 11. trường thoáng qua cuối cùng và tuần tự hóa
- 12. Tuần tự hóa Java với Trường thoáng qua
- 13. Làm cách nào để bản địa hóa khi tuần tự hóa JSON?
- 14. C# tự động hóa thuộc tính tự động hóa của JSON
- 15. Cách tốt nhất để jSON tuần tự hóa một .NET DataTable trong WCF là gì?
- 16. Cách tuần tự hóa hộp kiểm trong biểu mẫu thành dữ liệu Json
- 17. Các giá trị NaN tuần tự hóa thành JSON dưới dạng null trong JSON.NET
- 18. Làm thế nào để tuần tự hóa một mảng đối tượng jQuery cho JSON Post?
- 19. Cách chuẩn hóa để tuần tự hóa JSON thành chuỗi truy vấn?
- 20. gson - bao gồm tên lớp khi tuần tự hóa java pojo -> json
- 21. Bỏ qua trường cụ thể về tuần tự hóa với Jackson
- 22. Bỏ qua việc tuần tự hóa nhị phân trên thuộc tính
- 23. Bỏ qua thứ tự trường trong DataContractSerializer
- 24. Các trường JSON không theo thứ tự
- 25. Tuần tự hóa Java qua mạng
- 26. Bỏ qua các trường rỗng trong Json.net
- 27. Lỗi JSON Net Windows Mobile khi tuần tự
- 28. Jackson :: thêm các trường bổ sung vào một đối tượng trong tuần tự hóa
- 29. 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
- 30. Thư viện JSON Delphi cho XE2 có sẵn để tuần tự hóa đối tượng
nếu POCO của nó không phải là một EntityModel được tạo ra, tôi không muốn chỉnh sửa mã được tạo ra, có cách giải quyết nào đó để thêm thuộc tính ScriptIgnore vào mô hình thực thể được tạo ra hay không. – hazimdikenli
@hazimdikenli bạn có thể phải sử dụng một phần lớp cho việc này. –
Đừng quên thêm tham chiếu vào "System.Web.Extensions" để làm việc này – Levitikon