Относительно комментария, что "необходимо сначала создать дерево DOM": Нет, Вы нуждаетесь не и не должны делать этого.
Вместо этого создайте StreamSource (новый StreamSource (новый StringReader (ул.)), и канал, который к преобразователю идентификационных данных упомянул. Это будет использовать синтаксический анализатор SAX, и результат будет намного быстрее. Создание промежуточного дерева чисто служебный для этого случая. Иначе находящийся на вершине рейтинга ответ хорош.
У вас могут быть проблемы сериализации дат с помощью MVC JSON. Мой ответ на этот пост повторен ниже.
Если вы не привязаны к сериализатору MS JSON, вы можете использовать Json.NET. Он поставляется с IsoDateTimeConverter. Это приведет к сериализации дат в ISO Форматированная строка 8601 .
Например, в нашем проекте сериализация myObject обрабатывается через следующий код.
JsonNetResult jsonNetResult = new JsonNetResult (); jsonNetResult.Formatting = Formatting.Indented; jsonNetResult.SerializerSettings.Converters.Add (новый IsoDateTimeConverter ()); jsonNetResult.Data = myObject;
Если вы решите использовать Json.NET окунуться, ты тоже захочешь схватить JsonNetResult , поскольку он возвращает ActionResult, который можно использовать в Приложение ASP.NET MVC. Это вполне проста в использовании.
Для получения дополнительной информации см .: Хорошее (Дата) время с Json.NET
В настоящее время мы используем Json.NET v3.5 Beta 4 и не сталкивались с проблемами. Однако мы не облагаем налогами нашу систему, поскольку она еще не запущена в производство. Ваш опыт может варьироваться в зависимости от того, сколько фреймворка вы используете.
Надеюсь, это поможет.
Моя мысль что я не обнаружил никаких проблем с запеканием в Json. Я бы посоветовал пойти с этим, пока вы не найдете что-то, что не работает. Меньшее количество зависимостей упрощает отладку.
Раньше я работал с библиотекой .NET JSON, в которой использовался метод выбора или отказа для обозначения какие члены класса сериализованы. При просмотре примера приложения NerdDinner я вижу класс в SearchController под названием JsonDinner, который выглядит как обычный класс Dinner, но, кажется, существует только для правильного вывода нескольких дополнительных деталей, которые можно утверждать, связаны только с представлением, а не с реальной моделью. Особенности. В этом простом случае механизм нотации атрибутов в модели, идентифицирующий части, которые должны быть сериализованы в JSON, приведет к уменьшению количества кода, поддерживаемого вручную.