4D v16.3

Selection to JSON

Home

 
4D v16.3
Selection to JSON

Selection to JSON 


 

Selection to JSON ( Tabellenname {; Feld1... FeldN}{; Feld1... FeldN2 ; ... ; Feld1... FeldNN}{; Vorlage}) -> Funktionsergebnis 
Parameter Typ   Beschreibung
Tabellenname  Tabelle in Zeiger auf Tabelle
Feld1... FeldN  Feld in Feld(er) deren Inhalt serialisiert werden soll
Vorlage  Objekt in Objekt zum Auswählen von Bezeichnungen und Feldern
Funktionsergebnis  Text in String mit dem serialisierten JSON Array

Die Funktion Selection to JSON gibt einen String mit einem JSON Array mit sovielen Elementen zurück, wie Datensätze in der aktuellen Auswahl von Tabellenname enthalten sind. Jedes Element des Array ist ein JSON Objekt mit den Bezeichnungen und Werten der Felder in der Auswahl.

Übergeben Sie nur den Parameter Tabellenname, fügt die Funktion im JSON Array die Werte aller Felder der Tabelle ein, die sich in JSON ausdrücken lassen. Felder vom Typ BLOB und Bild werden ignoriert.

Wollen Sie nicht alle Felder von Tabellenname einfügen, können Sie entweder den Parameter Feld1...FeldN oder den Parameter Vorlage verwenden:

  • Feld1...FeldN: Hier übergeben Sie ein oder mehrere Felder. Nur die Werte der definierten Felder werden in das JSON Array eingefügt.
  • Vorlage: Hier übergeben Sie ein 4D Objekt mit einem oder mehreren Name/Wert Paaren. Der Name kann jeder gültige Attributname sein, der Wert enthält einen Zeiger auf ein Feld, das Sie einfügen möchten (siehe Beispiel 3)

Diese Funktion unterstützt Felder vom Typ Objekt: Daten dieser Felder werden automatisch in das JSON Format konvertiert. So wird die nachfolgende 4D Anweisung interpretiert als "erzeuge JSON von allen Werten in objectField in der aktuellen Auswahl der Tabelle":

 Selection to JSON([aTable];objectField)

Hinweis: Nach Aufrufen von Selection to JSON bleibt die aktuelle Auswahl gleich, der aktuelle Datensatz wird jedoch nicht länger geladen und kann sich geändert haben (der zuletzt geladene Datensatz der aktuellen Auswahl ist dann der aktuelle Datensatz). Um die Werte der Datenfelder im aktuellen Datensatz zu verwenden, rufen Sie nach Selection to JSON den Befehl LOAD RECORD in Kombination mit GOTO SELECTED RECORD (falls erforderlich) auf. 

Sie wollen ein JSON String für folgende Auswahl erstellen:

1) Sie wollen die Werte aller Felder der Tabelle [Mitglieder] nutzen:

 $jsonString :=Selection to JSON([Mitglieder])
  // $jsonString =[{"Name":"Maier","Vorname":"Alexander","Adresse":
  //"Ludwigshafen 1","PLZ":"41017","Stadt":"Düsseldorf"},{"Name":
  //"Schmidt","Vorname":"Verena","Adresse":"Schlossallee 1","PLZ":
  //"10099","Stadt":"Berlin"},{"Name":"Siemens","Vorname"
  //:"Fabian","Adresse":"Siemensallee 1","PLZ":"81373","Stadt":"München"},...]

2) Sie wollen die Auswahl verkleinern und nur zwei Felder in den JSON String einfügen. Dafür verwenden Sie die Syntax Feld1...FeldN:

 QUERY([Mitglieder];[Mitglieder]Name="A@")
 $jsonString :=Selection to JSON([Mitglieder];[Mitglieder]Name;[Mitglieder]Stadt)
  // $jsonString = [{"Name":"Schmidt","Stadt":"Berlin"},{"Name":"Siemens","Stadt":"München"}]

3) Sie wollen nur ein Feld in den JSON String einfügen und eine andere Bezeichnung verwenden. Sie können die Syntax template verwenden:

 C_OBJECT($template)
 OB SET($template;"Name";->[Mitglieder]Name) // ein einzelnes Feld
 ALL RECORDS([Mitglieder])
 $jsonString :=Selection to JSON([Mitglieder];$template)
  // $jsonString = [{"Name":"Maier"},{"Name":"Schmidt"},{"Name":"Siemens"},{"Name":"Osterman"},{"Name":"Schneider"},{"Name":"Berger"}]

Über die Syntax template können Sie Felder von unterschiedlichen Tabellen exportieren:

 C_OBJECT($template)
 C_TEXT($jsonString)
 OB SET($template;"Last name";->[Emp]LastName)
 OB SET($template;"First name";->[Emp]FirstName)
 OB SET($template;"Company";->[Company]LastName) //Eigene Bezeichnung, sonst Konflikt mit dem Feld [Emp]LastName
 ALL RECORDS([Emp])
 SET FIELD RELATION([Emp]UUID_Company;Automatic;Do not modify)
 $jsonString:=Selection to JSON([Emp];$template)
 SET FIELD RELATION([Emp]UUID_Company;Structure configuration;Do not modify)



Siehe auch 

JSON TO SELECTION

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: JSON
Nummer: 1234

This command can be run in preemptive processes

 
GESCHICHTE 

Erstellt: 4D v14

 
ARTIKELVERWENDUNG

4D Programmiersprache ( 4D v16)
4D Programmiersprache ( 4D v16.1)
4D Programmiersprache ( 4D v16.2)
4D Programmiersprache ( 4D v16.3)