Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Обработка массивов объектов JSON с помощью TJSONObject.ParseJSONValue в Delphi

Delphi , Синтаксис , Массивы

Обработка массивов объектов JSON в Delphi

В мире веб-разработки JSON (JavaScript Object Notation) является одним из наиболее популярных форматов обмена данными. В JSON массивы объектов обозначаются квадратными скобками []. В контексте языка Delphi и его компонентов для работы с JSON, массивы объектов обрабатываются с помощью класса TJSONArray, который является частью библиотеки System.JSON.

Пример кода

Давайте рассмотрим пример кода, который демонстрирует обработку массива объектов JSON с использованием функции TJSONObject.ParseJSONValue. В примере представлены два варианта JSON-строк: одна, где объекты находятся на одном уровне, и вторая, где они заключены в общий объект User.

uses
  ..., System.JSON;

var
  JSONStr, DateStr, NameStr: string;
  JSONVal: TJSONValue;
  JSONArr: TJSONArray;
  JSONObj, JSONUser: TJSONObject;
  I: Integer;
begin
  JSONStr := '[{"date":"12/11/1990","name":"Delphi7"},{"date":"03/05/2012","name":"Delphi 10.4"}]';
  JSONVal := TJSONObject.ParseJSONValue(JSONStr);
  try
    JSONArr := JSONVal as TJSONArray;
    for I := 0 to JSONArr.Count-1 do
    begin
      JSONObj := JSONArr[I] as TJSONObject;
      DateStr := JSONObj.GetValue('date').Value;
      NameStr := JSONObj.GetValue('name').Value;
      // Дополнительный код обработки
    end;
  finally
    JSONVal.Free;
  end;
end;
uses
  ..., System.JSON;

var
  JSONStr, DateStr, NameStr: string;
  JSONVal: TJSONValue;
  JSONArr: TJSONArray;
  JSONObj, JSONUser: TJSONObject;
  I: Integer;
begin
  JSONStr := '[{"User":{"date":"12/11/1990","name":"Delphi7"}},{"User":{"date":"03/05/2012","name":"Delphi 10.4"}}]';
  JSONVal := TJSONObject.ParseJSONValue(JSONStr);
  try
    JSONArr := JSONVal as TJSONArray;
    for I := 0 to JSONArr.Count-1 do
    begin
      JSONObj := JSONArr[I] as TJSONObject;
      JSONUser := JSONObj.GetValue('User') as TJSONObject;
      DateStr := JSONUser.GetValue('date').Value;
      NameStr := JSONUser.GetValue('name').Value;
      // Дополнительный код обработки
    end;
  finally
    JSONVal.Free;
  end;
end;

Подтвержденный ответ

В обоих примерах кода, после выполнения ParseJSONValue, результат будет TJSONValue, указывающий на TJSONArray, который содержит элементы TJSONObject. Для доступа к данным внутри этих объектов используется метод GetValue. Это позволяет извлечь строковые значения для ключей date и name, несмотря на различия в структуре JSON-строк.

Альтернативный способ доступа к элементам массива

В комментариях упоминается, что использование JSONArr.Items[I] вместо JSONArr[I] может быть предпочтительным для некоторых разработчиков из-за соглашения о том, что свойство Items является стандартным свойством для массивов в Delphi. Однако, в контексте TJSONArray, оба способа доступа к элементам массива являются корректными.

Заключение

При обработке JSON-массивов объектов в Delphi важно понимать структуру данных и правильно использовать методы класса TJSONObject и TJSONArray для извлечения и работы с данными. Правильный подход к парсингу и обработке JSON-данных обеспечивает надежность и эффективность вашего кода.

Создано по материалам из источника по ссылке.

Приведены примеры обработки массивов объектов JSON в Delphi с использованием классов `TJSONArray` и `TJSONObject`.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Массивы ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-03-14 12:55:55/0.0030519962310791/0