Einzelnen Beitrag anzeigen

mytbo

Registriert seit: 8. Jan 2007
472 Beiträge
 
#4

AW: LkJSON Array?!? Lesen und ändern

  Alt 9. Jan 2024, 22:00
Bei Delphi 2007 dürft mORMot die bessere Wahl sein:
Delphi-Quellcode:
uses
  mormot.core.base,
  mormot.core.data,
  mormot.core.json,
  mormot.core.text,
  mormot.core.rtti,
  mormot.core.variants,
  mormot.core.os;

type
  TData = packed record
    success: Boolean;
    data: array of record
      id: Integer;
      locked: Integer;
    end;
  end;

const
  JSON = '{"success":true,"data": [{"id": "3276","locked": "0"},{"id": "3272","locked": "0"}]}';
var
  i: Integer;
  rec: TData;
begin
  if RecordLoadJson(rec, RawUtf8(JSON), TypeInfo(TData)) then
  begin
    for i := 0 to High(rec.data) do
    begin
       ...
    end;

    ShowMessage(Utf8ToString(RecordSaveJson(rec, TypeInfo(TData))));
Oder als DocVariant:
Delphi-Quellcode:
var
  doc: TDocVariantData;
begin
  if doc.InitJson(JSON) then
  begin
    with doc.A['data']^ do
    begin
      if SearchItemByProp('id', '3272', {CaseSensitive=} False) >= 0 then
        AddObject(['id', 4000, 'locked', 0]);
    end;

    ShowMessage(Utf8ToString(doc.ToJson));
  end;
Hier noch ein Artikel zum Thema im Forum.

Bis bald...
Thomas

Geändert von mytbo ( 9. Jan 2024 um 22:06 Uhr) Grund: Link zum Artikel hinzugefügt
  Mit Zitat antworten Zitat