Registriert seit: 11. Nov 2003
Ort: Oldenburg
1.446 Beiträge
Delphi 10.2 Tokyo Enterprise
|
XML Erstellen
28. Mai 2019, 15:30
Wie kann ich so eine XML in Delphi erstellen
Code:
var menuData = [{
id: "1",
name: "Video Players",
items: [{
id: "1_1",
name: "HD Video Player",
price: 220,
icon: "images/products/1.png"
}, {
id: "1_2",
name: "SuperHD Video Player",
icon: "images/products/2.png",
price: 270
}]
}, {
id: "2",
name: "Televisions",
items: [{
id: "2_1",
name: "SuperLCD 42",
icon: "images/products/7.png",
price: 1200
}, {
id: "2_2",
name: "SuperLED 42",
icon: "images/products/5.png",
price: 1450
}, {
id: "2_3",
name: "SuperLED 50",
icon: "images/products/4.png",
price: 1600
}, {
id: "2_4",
name: "SuperLCD 55 (Not available)",
icon: "images/products/6.png",
price: 1350,
disabled: true
}, {
id: "2_5",
name: "SuperLCD 70",
icon: "images/products/9.png",
price: 4000
}]
}, {
id: "3",
name: "Monitors",
items: [{
id: "3_1",
name: "19\"",
items: [{
id: "3_1_1",
name: "DesktopLCD 19",
icon: "images/products/10.png",
price: 160
}]
}, {
id: "3_2",
name: "21\"",
items: [{
id: "3_2_1",
name: "DesktopLCD 21",
icon: "images/products/12.png",
price: 170
}, {
id: "3_2_2",
name: "DesktopLED 21",
icon: "images/products/13.png",
price: 175
}]
}]
}, {
id: "4",
name: "Projectors",
items: [{
id: "4_1",
name: "Projector Plus",
icon: "images/products/14.png",
price: 550
}, {
id: "4_2",
name: "Projector PlusHD",
icon: "images/products/15.png",
price: 750
}]
}];
Mein Versuch sieht so aus
Delphi-Quellcode:
function TKAS_Modul_main.GetJSONMenu: string;
var
Writer : TJsonTextWriter;
StringWriter: TStringWriter;
begin
StringWriter:=TStringWriter.Create();
Writer:=TJsonTextWriter.Create(StringWriter);
Writer.Formatting:=TJsonFormatting.Indented;
Writer.WriteStartArray;
GetMenuItems(Writer,KasMenu);
Writer.WriteEndArray;
Result:=StringWriter.ToString;
Writer.Free;
StringWriter.Free;
end;
procedure TKAS_Modul_main.GetMenuItems( var Writer: TJsonTextWriter;
const MenuItem: TKASMenuItems);
var
i : Longint;
begin
For i:=0 To MenuItem.Count-1 do
Begin
Writer.WriteStartObject;
Writer.WritePropertyName(' name');
Writer.WriteValue(MenuItem.Items[i]. Name);
Writer.WritePropertyName(' url');
Writer.WriteValue(MenuItem.Items[i].URL);
Writer.WritePropertyName(' icon');
Writer.WriteValue(MenuItem.Items[i].Icon);
Writer.WritePropertyName(' tab');
Writer.WriteValue(MenuItem.Items[i].isTab);
Writer.WriteEndObject;
if MenuItem.Items[i].SubItems.Count>0 then
Begin
Writer.WriteStartObject;
Writer.WritePropertyName(' items');
Writer.WriteStartArray;
GetMenuItems(Writer,MenuItem.Items[i].SubItems);
Writer.WriteEndArray;
Writer.WriteEndObject;
End;
End;
end;
Frank Tux sein Lieblingsquellcode
While anzfische<TuxSatt do begin
Fisch:=TFisch.Create; Tux.EssenFisch(Fisch); Fisch.Free;inc(anzfische); end;
|