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

Asp.net MVC json или Json.net?

Теперь я использую asp.net mvc и задаюсь вопросом, что лучше выбрать, используя встроенный Json или Json.Net Я не уверен если у кого-то есть преимущество над другим.

Также, если я действительно пойду по пути Json.Net, я должен пойти со стабильной версией или бета-версией 4? Я не уверен, насколько неустойчивы бета-версии.

4b9b3361

Ответ 1

У вас могут возникнуть проблемы сериализации дат с MVC JSON. Мой ответ на этот пост повторяется ниже.

Если вы не привязаны к сериализатору MS JSON, вы можете использовать Json.NET. Он поставляется с IsoDateTimeConverter. Это приведет к сериализации даты в ISO 8601.

Например, в нашем проекте Сериализация myObject обрабатывается через следующий код.

JsonNetResult jsonNetResult = new JsonNetResult();
jsonNetResult.Formatting = Formatting.Indented;
jsonNetResult.SerializerSettings.Converters.Add(new IsoDateTimeConverter());
jsonNetResult.Data = myObject;

Если вы решили взять Json.NET вы также захотите захватить JsonNetResult, поскольку он возвращает ActionResult, который может использоваться в Приложение ASP.NET MVC. Это вполне прост в использовании.

Для получения дополнительной информации см.: Good (Date) Times с Json.NET

В настоящее время мы используем Json.NET v3.5 Beta 4 и не сталкивались с проблемами. Однако мы на самом деле не облагали налогом нашу систему, поскольку она еще не вступила в производство. Ваш пробег может варьироваться в зависимости от того, какую часть используемой структуры вы используете.

Надеюсь, что это поможет.

Ответ 2

Моя мысль заключается в том, что я не нашел проблем с испечением в Json. Я бы предложил пойти с этим, пока вы не найдете что-то, что не работает. Меньшие зависимости упрощают отладку.

Ответ 3

В прошлом я работал с библиотекой .NET JSON, которая использовала метод opt-in или opt-out для обозначения того, какие члены класса сериализуются. При рассмотрении примерного приложения NerdDinner я вижу класс в SearchController под названием JsonDinner, который выглядит как обычный класс Dinner, но, похоже, существует только для корректного вывода нескольких дополнительных деталей, которые можно было бы утверждать, только связанные с просмотром, а не по-настоящему связанные с моделью функции. В этом простом случае механизм обозначений атрибутов на модели, идентифицирующий фрагменты, которые должны быть сериализованы для JSON, привел бы к уменьшенному количеству поддерживаемого вручную кода.