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

LINQ to JSON в .NET

Есть ли такая вещь, как JSON файл? То есть, *.json?

Может ли JSON использоваться в коде С# без каких-либо элементов JavaScript, вроде замены XML?

И есть ли официальная LINQ для JSON для С#?

Я нашел один веб-сайт для моего последнего вопроса, но он взял меня на страницу для загрузки JSON.NET, и эта страница, похоже, ничего не упоминает о LINQ.

4b9b3361

Ответ 1

  • Да, есть такая вещь, как файл *.json. Тип MIME application/json (источник). JSON - это текстовый формат, поэтому вы можете гипотетически хранить JSON-форматированные данные в текстовом файле с любым расширением, которое вы выберете.

  • JSON можно абсолютно использовать независимо от JavaScript. В некоторых случаях он, вероятно, лучше подходит для представления ваших данных, чем XML. JSON.org имеет отличную страницу сравнения между JSON и XML.

  • JSON.org перечисляет несколько библиотек JSON для С# (например, JSON.NET, которые вы уже обнаружили), и большинство (если не все) коллекций, которые используют эти библиотеки, должны поддерживать LINQ. JSON.NET определенно предлагает поддержку для нее. См. здесь или здесь.

Ответ 2

Каждый человек имеет тенденцию придерживаться JavaScriptSerializer (из библиотеки System.Web.Extensions) при работе с JSON в .NET. Удобной частью этого является возможность создания пользовательского JavaScriptConverter, который будет принимать пользовательские объекты и сериализовать их так, как вы выбрали. Аналогично, вы можете сделать метод десериализации для получения в пользовательском форматировании JSON.

Хотя это, конечно, зависит от вашего приложения. Учитывая, что это приложение Windows Forms, есть ли какая-то особая причина, по которой вы выбрали JSON для хранения информации изначально или просто использовать формат XML? Если ваше приложение взаимодействует с веб-страницами, JavaScriptSerializer, вероятно, лучший выбор, но если вы используете его для хранения/получения настроек, я бы использовал XML. И, если вам необходимо синхронизировать ваше приложение с веб-интерфейсом, просто выполните сериализацию в JSON, когда время будет готово.

Ответ 3

Вы можете десериализовать свой JSON файл на объекты С#. После этого вы можете запросить LINQ на этих объектах.