.NET Framework giao với System.Runtime.Serialization.Json.DataContractJsonSerializer và System.Web.Script.Serialization.JavaScriptSerializer, cả hai đều de/serialize JSON. Làm cách nào để biết khi nào nên chọn một trong các loại này so với loại kia? MSDN không làm cho nó rõ ràng những lợi thế tương đối của họ là gì.Sự khác nhau giữa DataContractJsonSerializer và JavaScriptSerializer là gì?
Chúng tôi có một số dự án tiêu thụ hoặc phát ra JSON và lớp được chọn cho mỗi dự án đã phụ thuộc vào ý kiến của nhà phát triển chính về từng dự án. Một số là đơn giản, hai có logic phức tạp liên quan đến sản xuất các loại quản lý từ JSON (các loại không bản đồ chặt chẽ với các dòng) nhưng không có bất kỳ sự nhấn mạnh về tốc độ, một đòi hỏi tốc độ. Không có gì tương tác với WCF, ít nhất là bây giờ.
Trong khi tôi quan tâm đến các thư viện thay thế, tôi hy vọng rằng ai đó cũng có thể có câu trả lời cho câu hỏi của tôi.
sử dụng Json.Net http://json.codeplex.com/. Bạn sẽ có quyền kiểm soát nhiều hơn đối với quá trình tuần tự hóa/deserialization. –
Phụ thuộc vào cách bạn đang sử dụng nó. DataContractJsonSerializer có xu hướng hoạt động tốt với WCF. JavaScriptSerializer đơn giản hơn rất nhiều. Bạn đang cố làm gì vậy? – jrummell
Sử dụng ServiceStack.JsonSerializer - đó là nhanh nhất. Nhưng nó không tôn trọng thuộc tính [ScriptIgnore]. Không phải là một vấn đề nếu bạn không cần nó. Xem một cuộc thảo luận dài về nó ở đây: http://stackoverflow.com/questions/9150920/preventing-stackoverflowexception-while-serializing-ef-object-graph-into-json –