Wie lese ich denn das aus?
"length": [
0,
"mm"
]
Mit Hilfe von mORMot lassen sich einzelne Wert auslesen, oder die gesamte Struktur als Objekt/Record abbilden.
Der Zugriff auf einzelne Werte erfolgt so:
Delphi-Quellcode:
uses
mormot.core.base,
mormot.core.text,
mormot.core.variants;
var
doc: TDocVariantData;
item: PDocVariantData;
itemDim: PDocVariantData;
begin
doc.InitJsonFromFile('data.json', JSON_[mFastFloat]);
for item in doc.A['data'].Objects do
begin
itemDim := item.O['article'].O['dimensions'];
with itemDim.A['length']^ do
ShowMessage(Utf8ToString(FormatUtf8('Length: %%', [Value[0], Value[1]])));
end;
Die JSON Daten als Record abbilden, gelingt so:
Delphi-Quellcode:
uses
mormot.core.base,
mormot.core.json,
mormot.core.text,
mormot.core.os;
type
TDataRec = record
data: array of record
article: record
id: Integer;
dimensions: record
length: array of Variant;
width: array of Variant;
height: array of Variant;
end;
end;
end;
meta: record
pagination: record
total: Integer;
count: Integer;
end;
end;
end;
var
i: Integer;
rec: TDataRec;
json: RawJson;
begin
json := StringFromFile('data.json');
if RecordLoadJson(rec, json, TypeInfo(TDataRec)) then
begin
for i := 0 to High(rec.data) do
begin
with rec.data[i].article.dimensions do
ShowMessage(Utf8ToString(FormatUtf8('Length: %%', [length[0], length[1]])));
end;
end;
Die Record Definition muss die JSON Werte nicht vollständig abbilden, wenn zum Einlesen der Mode
Tolerant gewählt wird.
Bis bald...
Thomas