Asp.net MVC JSON или Json.net? - PullRequest
       20

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

18 голосов
/ 30 августа 2009

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

Кроме того, если я решу пойти по маршруту Json.Net, мне следует перейти на стабильную версию или бета-версию 4? Я не уверен, насколько нестабильны бета-версии.

Ответы [ 3 ]

10 голосов
/ 30 августа 2009

У вас могут быть проблемы сериализация дат с помощью 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 и не сталкивались с проблемами. Однако мы не облагали налогом нашу систему, поскольку она еще не запущена в производство. Ваш пробег может варьироваться в зависимости от того, какую часть фреймворка вы используете.

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

6 голосов
/ 30 августа 2009

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

1 голос
/ 07 апреля 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...