Есть ли в C # встроенные объекты для преобразования текста JSON в управляемые объекты или мне нужна сторонняя библиотека? - PullRequest
1 голос
/ 20 сентября 2010

У меня есть весь этот текст JSON, который я хочу десериализовать (или что-то) в объект с переменными, чтобы я мог пробежаться по нему и добавить / изменить некоторые вещи, а затем сериализовать его обратно в текст.Есть ли что-то встроенное от Microsoft для этого?

Ответы [ 4 ]

7 голосов
/ 20 сентября 2010

WCF имеет DataContractJsonSerializer, но я не использовал его сам - я всегда обращался к Json.NET , который я нашел в целом превосходным.

Я ожидаю, что сериализатор WCF подойдет , если вы используете WCF, но если вы пишете отдельное приложение, я бы выбрал Json.NET.Это довольно прямая зависимость.В частности, мне нравится тот факт, что мне на самом деле не нужно моделировать классы напрямую, чтобы использовать Json.NET - я склонен использовать сторону "LINQ" библиотеки, которая немного похожа наLINQ to XML, но применяется к JSON.Я имею дело непосредственно с JArray, JObject, JToken и т. Д. И позволяю Json.NET просто выполнять синтаксический анализ / форматирование.

3 голосов
/ 20 сентября 2010

Если вы использовали MVC, для вывода есть методы JSON, но также можно использовать фильтры действий для десериализации переданного json. Есть некоторые причуды к этому, но он хорошо работает с json, переданным через jQuery. и т.д.

Проверьте это

0 голосов
/ 20 сентября 2010

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

Он отлично подходит для сериализации объектов и списков или десериализации JSON.

http://json.codeplex.com/

0 голосов
/ 20 сентября 2010

Новые необычные вещи "AJAX" поставляются с JavaScriptSerializer (встроенный в Framework 3.5 и более поздние версии, по крайней мере). Он не так гибок, как, скажем, сериализаторы XML, но он выполняет свою работу во многих случаях.

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