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

Использование XML и JSON для сохранения и загрузки данных в приложениях на Delphi

Delphi , Компоненты и Классы , Коллекции

В статье будет рассмотрено, как использовать XML и JSON для сохранения и загрузки данных в приложениях, разработанных с использованием языка программирования Object Pascal в среде Delphi. Примеры кода будут представлены на Object Pascal, чтобы помочь разработчикам, знакомым с этой технологией, понять процесс работы с данными в формате JSON.

Сохранение данных в JSON

Для создания JSON-файла можно использовать различные библиотеки, например, JsonConf или FpJson. Ниже приведен пример кода на Object Pascal, который демонстрирует, как создать структуру данных в формате JSON и сохранить её в файл.

uses
  JsonConf, // Подключение библиотеки для работы с JSON
  ...; // Другие используемые модули

procedure CreateJson;
var
  sl: TStringList;
begin
  with TJSONConfig.Create(nil) do
  try
    FileName := 'sample.json'; // Указываем имя файла для сохранения
    sl := TStringList.Create;
    try
      sl.SetStrings(['durable', 'economic']);
      SetValue('/cars/toyota corolla', sl);
      sl.SetStrings(['cheap', 'elegance']);
      SetValue('/cars/hyundai i20', sl);
      sl.SetStrings(['speed', 'versatile']);
      SetValue('/motorcycle/Bimota KB4', sl);
      sl.SetStrings(['cheap', 'economic']);
      SetValue('/motorcycle/Ducati DesertX', sl);
    finally
      sl.Free;
    end;
  finally
    Free; // Закрытие файла, если сохранение прошло успешно
  end;
end;

Загрузка данных из JSON

Для загрузки данных из JSON-файла в приложение можно использовать функцию LoadJson, которая читает содержимое файла и преобразует его в структуру данных, которую затем можно использовать для отображения в TTreeView, TListView или TVirtualTreeView.

uses
  FpJson, // Подключение библиотеки для чтения JSON
  JsonParser,
  ...; // Другие используемые модули

procedure TForm1.Button1Click(Sender: TObject);
function LoadJson(const aFileName: string): TJsonData;
var
  ms: TMemoryStream;
begin
  Result := nil;
  ms := TMemoryStream.Create;
  try
    ms.LoadFromFile(aFileName);
    Result := GetJson(ms);
  finally
    ms.Free;
  end;
end;

procedure ProcessJson(aParent: TTreeNode; aJson: TJsonData);
var
  e: TJSONEnum;
  Node: TTreeNode;
begin
  case aJson.JSONType of
    jtObject:
      for e in aJson do
      begin
        Node := TreeView1.Items.AddChild(aParent, e.Key);
        ProcessJson(Node, e.Value);
      end;
    jtArray:
      for e in aJson do
        ProcessJson(aParent, e.Value);
    else
      TreeView1.Items.AddChild(aParent, aJson.AsString);
  end;
end;

var
  Json: TJsonData;
begin
  Json := LoadJson('sample.json');
  if Json = nil then
    exit; // Ошибка загрузки JSON
  try
    TreeView1.BeginUpdate;
    try
      TreeView1.Items.Clear;
      ProcessJson(nil, Json);
      TreeView1.FullExpand;
    finally
      TreeView1.EndUpdate;
    end;
  finally
    Json.Free;
  end;
end;

Создание новых элементов управления через JSON

В ответ на вопрос о возможности создания новых элементов управления (например, кнопок) через JSON, можно отметить, что такое действие возможно, но требует более сложной логики. Для этого необходимо разработать механизм парсинга JSON, который будет создавать элементы управления на основе данных, полученных из JSON-файла. Примером может служить парсинг файлов .dfm, который использует компоненты TObjectTextToResource и TReadComponentRes для создания элементов управления.

Заключение

В этой статье были представлены основные принципы работы с JSON в приложениях на Delphi. Приведенные примеры кода помогут разработчикам начать работу с данными в формате JSON и использовать их для сохранения и загрузки данных в приложениях, а также для создания новых элементов управления на основе данных, полученных из JSON.

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

В статье рассматривается использование XML и JSON для сохранения и загрузки данных в приложениях на Delphi, с примерами кода на Object Pascal.


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

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




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


:: Главная :: Коллекции ::


реклама


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

Время компиляции файла: 2024-12-22 20:14:06
2025-02-05 18:59:58/0.0037410259246826/0