Найти тему
ZZnOB.Ru

LINQ запрос данных в JSON

Оглавление

LINQ используется для запросов к коллекциям в .NET. Существуют разные провайдеры LINQ для запросов к различным источникам данных. Например, если вы хотите запросить SQL, вы используете LINQ to SQL. При работе с JSON вы можете использовать LINQ to JSON. JSON не имеет провайдера LINQ, но имеет API, который позволяет работать с объектами JSON в C# . Он является частью инфраструктуры JSON.NET, которая обеспечивает поддержку JSON в .NET. Сегодня будем делать LINQ запросы к JSON файлу.

Итак, приступим.

1. Установка Netwonsoft.Json

Netwonsoft.Json можно установить с помощью диспетчера пакетов nuget, либо с помощью консоли диспетчера пакетов. При использовании менеджера пакетов nuget запустите его (кликнете правой кнопкой мыши на решении или проекте в Visual Studio и выберите “Управление пакетами Nuget для…). В поле поиска введите Netwonsoft.Json и установите этот пакет. Если вы используете консоль диспетчера пакетов, то устанавливайте его командой:

Install-Package Newtonsoft.Json

Далее импортируйте пространство имен Newtonsoft.Json указав его в директивах using:

using Newtonsoft.Json;
using Newtonsoft.Json.Linq;

2. Разбор строки JSON, используя метод Parse класса JObject.

Этот метод вернет объект, представляющий строку JSON

JObject.Parse («Строка JSON»)

3. Запрашиваем объект JSON, используя LINQ запрос

Для начала объявляем и декларируем класс Employee.

public class Employee
{
public int ID { get; set; }
public string Name { get; set; }
}

Затем мы выбираем список сотрудников, используя источник JSON в классе DBHelper следующим образом:

public static class DBHelper {
public static JObject GetEmployeesJSON()
{
JObject o = JObject.Parse(@"{ 'Organization': 'MyOrganization', 'Address':'Address', 'Employees': [ {'Name':'1'}, {'Name':'2'} ] }"); return o; }
}

Теперь вы можете получить список сотрудников так:

var employees= DBHelper.GetEmployeesJSON()["Employees"].Select(emp =>emp).ToList();

LINQ to JSON предоставляет следующие полезные классы

  • JObject
  • JArray
  • JProperty

Метод children () возвращает потомков в виде IEnumerable <JToken>. Может использоваться с JObject или JArray.

Не забудьте зайти на блог, там бывают полезные записи, которые я не публикую тут!

А чтобы быть в курсе последних моих постов, подписывайтесь на мой канал в Telegram.