Подтвердить что ты не робот

System.Web.Script.Serialization.JavaScriptSerializer или System.Runtime.Serialization.Json.DataContractJsonSerializer?

Какая разница между этими двумя? Почему вы используете один над другим?

4b9b3361

Ответ 1

Найдено здесь: http://aaron-powell.spaces.live.com/blog/cns!91A824220E2BF369!150.entry

DataContractJsonSerializer Основная цель DataContractJsonSerializer должна использоваться с WCF, поскольку одна сериализация является большим фокусом WCF. Кроме того, он также лучше оснащен обработкой сложных классов, которые имеют только определенные свойства, доступные для сериализации. Этот класс более строго типизирован, имеет больше знаний о типе (типах), которые он обрабатывает, и улучшает обработку ошибок для плохо сформированного JSON.

JavaScriptSerializer Этот класс, с другой стороны, намного лучше приспособлен для быстрой сериализации, это более подход ковбоя. Там меньше ошибок и меньше контроля над тем, какие свойства сериализуются.

Update

Как указано выше, ссылка является следующей ссылкой: http://kb.cnblogs.com/a/1454030.

Ответ 2

Лично я бы посмотрел на Json.NET - это имеет то преимущество, что оно совместимо с .NET 2.0

Ответ 3

JavaScriptSerializer отмечен как устаревший в фреймворке 3.5. Вы не должны использовать его по этой причине. Однако вернемся к вашему вопросу. JavaScriptSerializer не требует, чтобы классы были помечены как [Serializable] или как [DataContract], но DataContractJsonSerializer. Если вы скомпилировали классы, которые нельзя пометить атрибутами, вы можете использовать более старый JSON-сериализатор.