IJsonElement.Query

Синтаксис

Query(Path: String): IJsonArray;

Query(Path: String): Prognoz.Platform.Interop.ForeSystem.IJsonArray;

Параметры

Path. JSONPath-запрос для получения дочерних элементов.

Описание

Метод Query возвращает массив элементов, полученных путём выполнения указанного JSONPath-запроса.

Комментарии

Информацию о формировании JSONPath-запросов можно найти в специализированной документации, например, в MSDN.

Пример

Для выполнения примера предполагается наличие JSON-файла «d:\Work\Json\data.json». Файл имеет примерно следующую структуру:

JSON-файл

Для примера на Fore.NET добавьте ссылки на системные сборки: ForeSystem, WinForms.Utils.

Sub UserProc;
Var
    Doc: IJsonDocument;
    JSONArray: IJsonArray;
Begin
    Doc := 
New JsonDocument.Create;
    Doc.ReadFromFile(
"d:\Work\Json\data.json");
    JSONArray := Doc.Root.Query(
"$.product[?(@.price > 50 && @.price < 350)]");
    Debug.WriteLine(
"Количество отобранных элементов: " + JSONArray.Count.ToString);
End Sub UserProc;

Imports Prognoz.Platform.Interop.ForeSystem;
Imports Prognoz.Platform.PiLibNet.Utils;

Sub UserProc();
Var
    Doc: IJsonDocument = ComCreator.Instance.CoCreate<JsonDocumentClass>();
    JSONArray: IJsonArray;
Begin
    Doc.ReadFromFile("d:\Work\Json1\data.json");
    JSONArray := Doc.Root.Query("$.product[?(@.price > 50 && @.price < 350)]");
    System.Diagnostics.Debug.WriteLine("Количество отобранных элементов: " + JSONArray.Count.ToString());
End Sub;

При выполнении примера из файла будет считана JSON-структура. К данной структуре будет выполнен запрос на отбор элементов в соответствии с указанным условием. Количество отобранных элементов будет выведено в консоль среды разработки.

См. также:

IJsonElement