FireDAC.Phys.MongoDBWrapper.TMongoDocument.Iterator
Delphi
function Iterator: TJSONIterator;
C++
System::Json::Builders::TJSONIterator* __fastcall Iterator();
Inhaltsverzeichnis
Eigenschaften
Typ | Sichtbarkeit | Quelle | Unit | Übergeordnet |
---|---|---|---|---|
function | public | FireDAC.Phys.MongoDBWrapper.pas FireDAC.Phys.MongoDBWrapper.hpp |
FireDAC.Phys.MongoDBWrapper | TMongoDocument |
Beschreibung
Erstellt eine neue Instanz und gibt eine Referenz auf einen JSON-Iterator zurück.
HINWEIS: Der Aufrufer dieser Methode muss das Iteratorobjekt nach dessen Verwendung freigeben.
Beispiele
Sehen Sie sich folgendes Szenario an:
- Sie haben einer MongoDB-Datenmenge mit dem Beispielcode aus BeginObject ein Dokument hinzugefügt.
-
- Dieses Dokument enthält das Feld "Label1", in dem ein eingebettetes Dokument mit drei Schlüssel/Wertepaaren enthalten ist: "Top": 30, "Left": 30, und "Caption": "Enter value:".
- Sie haben auf dem Anwendungsformular eine Beschriftung (Label2-Variable mit dem Typ TLabel in diesem Beispiel) abgelegt.
Das folgende Codefragment zeigt, wie mit der Methode Iterator die Werte dieser Schlüssel/Wertepaare abgerufen und dann den Eigenschaften von Label2 zugewiesen werden.
Delphi:
var
oDoc: TMongoDocument;
oIter: TJSONIterator;
Label2: TLabel;
....
oIter := oDoc.Iterator;
try
oIter.Next('Label1');
if (oIter.Key = 'Label1') and (oIter.&Type = TJsonToken.StartObject) then begin
oIter.Recurse;
oIter.Next;
Label2.Position.Y := oIter.AsInteger;
oIter.Next;
Label2.Position.X := oIter.AsInteger;
oIter.Next;
Label2.Text := oIter.AsString;
oIter.Return;
end;
finally
oIter.Free;
end;
C++Builder:
TLabel *Label2;
TMongoDocument *oDoc;
TJSONIterator *oIter = oDoc->Iterator();
__try {
oIter->Next("Label1");
//Label2->Text = "Starting ... " + oIter->Key;
if ((oIter->Key == "Label1") && (oIter->Type == TJsonToken::StartObject)) {
oIter->Recurse();
oIter->Next();
Label2->Position->Y = oIter->AsInteger;
oIter->Next();
Label2->Position->X = oIter->AsInteger;
oIter->Next();
Label2->Text = oIter->AsString;
oIter->Return();
}
}
__finally {
oIter->Free();
}