Nie sądzę, że to zadziała, zakładam, że potrzebujesz jednostek Delphi do użycia FireDacJsonreflect.
Można zrobić wyjście samemu JSON zobaczyć ten mały przykład używam comany z przykładu DB tylko 3 pola w clientdataset będziesz probobly zrobić to trochę bardziej skomplikowane, a także inny structur Chyba
tylko pomysł ..
function TServerMethods1.JsonDB: TJSONObject; // Hold the array
var
i : Integer;
JsonArray: TJSONArray;
record_number : Integer;
begin
result:=TJSONObject.Create;
// Field names
JsonArray:=TJSONArray.Create;
ClientDataSet1.First;
for i := 0 to ClientDataSet1.Fields.Count-1 do
Begin
JsonArray.AddElement(TJSONObject.Create(TJSONPair.Create('Field'+I.ToString ,ClientDataSet1.Fields[i].FieldName)));
End;
Result.AddPair('Fields',JsonArray);
//Data
record_number:=0;
while not ClientDataSet1.Eof do
Begin
inc(record_number);
JsonArray:=TJSONArray.Create;
for i := 0 to ClientDataSet1.Fields.Count-1 do
Begin
JsonArray.AddElement(TJSONObject.Create(TJSONPair.Create(I.ToString,ClientD ataSet1.Fields[i].Asstring)));
End;
Result.AddPair('record-'+record_number.ToString,JsonArray);
ClientDataSet1.Next;
End;
end;
To powinno dać efekt podobny
{ "wynik": [{ "Fields": [{ "Field0": "CustNo"}, { "Pole1":” Firma "}, {" Field2 ":" Country "}]," record-1 ": [{" 0 ":" 1221 "}, {" 1 ":" Kauai Dive Shoppe "}, {" 2 ":" US "}]," reco rd-2 ": [{" 0 ":" 1231 "}, {" 1 ":" Unisco "}, {" 2 ":" Bahamas "}]," record-3 ": [{" 0 ":" 1351 "}, {" 1 ":" Sight Diver "}, {" 2 ":" Cyprus "}]," record-4 ": [{" 0 ":" 1354 "}, {" 1 ":" Cayman Divers World Unlimited "}, {" 2 ":" British West Indies "}]," record-5 ": [{" 0 ":" 1356 "}, {" 1 ":" Tom Sawyer Diving Center "}, { "2": "Wyspy Dziewicze Stanów Zjednoczonych"}], "rekord-6": [{"0": "1380"}, {"1": "Centrum Blue Jack Aqua"}, {"2": "US" }], "rekord-7": [{"0": "1384"}, {"1": "Klub nurków VIP"}, {"2": "Wyspy Dziewicze Stanów Zjednoczonych"}], "rekord-8" : [{"0": "1510"}, {"1": "Ocean Raj"}, {"2": "US"}], "rekord-9": [{"0": "1513"} , {"1": "Fantastique Aquatica"}, {"2": "Columbia"}], "record-10": [{"0": "1551"}, {"1": "Klub Świstaków Marmota" }, {"2": "Kanada"}], "rekord-11": [{"0": "1560"}, {"1": "Głębokość"}, {"2": "USA" }], "rekord-12": [{"0": "1563"}, {"1": "Blue Sports"}, {"2": "US"}], "rekord-13": [{ "0": "1624"}, {"1": "Klub Makau SCUBA"}, {"2": "USA"}], "rekord-14": [{"0": "1645"}, { "1": "Action Club"}, {"2": "US"}], "record-15": [{"0": "1651"}, {"1": "Jamajka SCUBA Center"}, {"2": "West Indies"}], "record-16": [{"0": "1680"}, {"1": "Wyspy Finders"} { "2", "us"}] "rekord 17" [{ "0", "1984"}, { "1": "przygoda podwodne"}
Hej, mają jakiś sukces? Mam ten sam problem. –
Czy nadal używasz XE7? Zrezygnowałem z XE7 i być może najnowsza wersja mogłaby wykonać to zadanie. – Magno