Какая разница между этими двумя? Почему вы используете один над другим?
System.Web.Script.Serialization.JavaScriptSerializer или System.Runtime.Serialization.Json.DataContractJsonSerializer?
Ответ 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-сериализатор.