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

Обработка JSON массива для вставки данных в SQL базу: подробное руководство по Delphi

Delphi , Базы данных , SQL

JSON (JavaScript Object Notation) — это легковесный формат обмена данными, который легко читается как человеком, так и машиной. В контексте разработки на Delphi, работы с JSON массивами часто требуется для интеграции с веб-сервисами или при миграции данных между различными источниками.

Проблема

Рассмотрим JSON объект, который содержит вложенный массив объектов. Нам необходимо обработать каждый объект в массиве отдельно, чтобы в дальнейшем вставить его данные в SQL базу.

{
  "id": 0,
  "data": "[{DAT_INCL: \"08/03/2012 10:07:08\", NUM_ORDE: 1, NUM_ATND: 1, NUM_ACAO: 2, NUM_RESU: 3},
            {DAT_INCL: \"08/03/2012 10:07:09\", NUM_ORDE: 2, NUM_ATND: 1, NUM_ACAO: 4, NUM_RESU: 5},
            {DAT_INCL: \"08/03/2012 10:07:09\", NUM_ORDE: 3, NUM_ATND: 1, NUM_ACAO: 8, NUM_RESU: NULL}]"
}

Решение

Для начала необходимо корректно извлечь JSON массив из исходного объекта. В примере кода, предоставленном в вопросе, пользователь столкнулся с проблемой, что размер массива был некорректен, что указывало на ошибку в типизации. Исправление заключалось в проверке типа значения, которое пользователь пытался интерпретировать как массив, используя оператор as для безопасного приведения типов.

jArray := jPair.JsonValue as TJSONArray;

Если приведение типов не удается, происходит исключение EInvalidCast, что указывает на то, что значение не является TJSONArray. В данном случае, значение действительно было строкой, содержащей JSON данные. Для корректного парсинга необходимо использовать метод TJSONObject.ParseJSONValue.

jArray := TJSONObject.ParseJSONValue((jPair.JsonValue as TJSONString).Value) as TJSONArray;

Пример кода

Далее, приведем пример кода, который демонстрирует, как обработать JSON массив и вывести его содержимое:

program Project1;
{$APPTYPE CONSOLE}
{$R *.res}

uses
  System.SysUtils, dbxjson;

const JSON_DATA = '{"ArrayData":[{...}]}'; // Полный JSON объект

var
  jsv, jsValue: TJsonValue;
  originalObject, jso: TJsonObject;
  jsPair, jsArr: TJsonPair, TJsonArray;
  i: Integer;
begin
  try
    // Парсинг JSON строки
    jsv := TJSONObject.ParseJSONValue(JSON_DATA);
    try
      originalObject := jsv as TJsonObject;
      jsPair := originalObject.Get('ArrayData');
      jsArr := jsPair.JsonValue as TJSONArray;

      writeln('Размер массива: ', jsArr.Size);
      for i := 0 to jsArr.Size - 1 do begin
        jso := jsArr.Get(i) as TJsonObject;
        for jsPair in jso do
          writeln(jsPair.JsonString.Value, ': ', jsPair.JsonValue.Value);
      end;
    finally
      jsv.Free;
      Readln;
    end;
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;
end.

Интеграция с SQL базой

После обработки данных из JSON массива, их можно вставить в SQL базу. Для этого необходимо определить соответствующую схему таблицы, которая соответствует полям JSON объектов, и использовать SQL команды для вставки данных.

Заключение

В данной статье мы рассмотрели, как работать с JSON массивами в Delphi, используя компоненты из пакета dbxjson. Мы научились извлекать данные из JSON массива и подготовили их для дальнейшей работы с SQL базами данных. Это базовые знания, которые пригодятся при работе с веб-сервисами и интеграции данных.

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

Обсуждается процесс обработки JSON массива для последующей вставки данных в SQL базу с использованием языка программирования Delphi и подробно рассматривается пример кода для этой задачи.


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

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




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


:: Главная :: SQL ::


реклама


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

Время компиляции файла: 2024-12-22 20:14:06
2025-02-05 13:55:57/0.003572940826416/0