Dies ist die alte 4D Dokumentations-Website. Die neue und aktualisierte Dokumentation finden Sie unter developer.4d.com

Home

 
4D v20 R7
JSON Stringify

JSON Stringify 


 

JSON Stringify ( Wert {; *} ) -> Funktionsergebnis 
Parameter Typ   Beschreibung
Wert  Objekt, Mixed in Daten zum Konvertieren in JSON String
Operator in Formatierung aktivieren
Funktionsergebnis  Text in String mit dem serialisierten JSON Text

Die Funktion JSON Stringify konvertiert den Parameter Wert in einen JSON String. Sie serialisiert Daten in JSON; sie führt die entgegengesetzte Aktion der Funktion JSON Parse durch.

In Wert übergeben Sie Daten zum Serialisieren. Sie lassen sich in skalarer Form, also String, Zahl, Datum oder Zeit, bzw. als 4D Objekt, Objekt Array oder Collection anzeigen.

Hinweis: 4D Datumsangaben werden entweder in das Format "yyyy-mm-dd" oder "YYYY-MM-DDThh:mm:sssZ" konvertiert. Das richtet sich nach der aktuellen Datumseinstellung der Datenbank (siehe auf der Seite Kompatibilität, Option "Verwende Datumstyp statt ISO Datumsformat in Objekten").

Bei einem Objekt oder einer Collection sind alle Typen verwendbar (siehe Abschnitt JSON Datentypen). Die JSON Formatierung muss folgende Regeln berücksichtigen:

  • String Werte stehen in Anführungszeichen. Alle Unicode Zeichen sind verwendbar, bei Sonderzeichen wird ein umgekehrter Schrägstrich \ vorangestellt
  • Zahlen: Bereich ±10.421e±10
  • Booleans: String "true" oder "false"
  • Datum (Format "yyyy-mm-dd" oder "\"YYYY-MM-DDTHH:mm:ssZ"\", gemäß der aktuellen Einstellung der Datenbank; siehe oben)
  • Zeit: Typ Zahl (standardmäßig Anzahl von Sekunden)
    Hinweise:

    • Bilder werden in folgenden String konvertiert: "[Objekt Bild]".
    • Zeiger auf Feld, Variable oder Array werden beim Umwandeln in String gewertet

Sie können den optionalen Parameter * übergeben, um im resultierenden String Formatierungszeichen einzuschließen. Diese Option verbessert die Darstellung von JSON Daten (pretty formatting).

Skalare Werte konvertieren:

 $vc:=JSON Stringify("Eureka!") // "Eureka!"
 $vel:=JSON Stringify(120) // "120"
 
 $vh:=JSON Stringify(?20:00:00?) // "72000" Sekunden seit Mitternacht
 SET DATABASE PARAMETER(Times inside objects;Times in milliseconds)
 $vhms:=JSON Stringify(?20:00:00?) // "72000000" Millisekunden seit Mitternacht
 
 $vd:=JSON Stringify(!28/08/2013!) // "2013-08-27T22:00:00.000Z" (Paris Zeitzone)
 SET DATABASE PARAMETER(Dates inside objects;String type without time zone)
 $vdd:=JSON Stringify(!28/08/2013!) // "2013-08-28T00:00:00.000Z"

Eine einfache Zeichenkette konvertieren:

 $s:=JSON Stringify("{\"name\":\"john\"}")
  // $s="{\\"name\\":\\"john\\"}"
 $p:=JSON Parse($s)
  // $p={"name":"john"}

Ein 4D Objekt mit und ohne den Parameter * serialisieren:

 C_TEXT($MyContact)
 C_TEXT($MyPContact)
 C_OBJECT($Contact;$Children)
 OB SET($Contact;"lastname";"Monroe";"firstname";"Alan")
 OB SET($Children;"firstname";"Jim";"age";"12")
 OB SET($Contact;"children";$Children)
 $MyContact:=JSON Stringify($Contact)
 $MyPContact:=JSON Stringify($Contact;*)
  //$MyContact= {"lastname":"Monroe","firstname":"Alan","children":{"firstname":"John","age":"12"}}
  //$MyPContact= {\n\t"lastname": "Monroe",\n\t"firstname": "Alan",\n\t"children": {\n\t\t"firstname": "John",\n\t\t"age": "12"\n\t}\n}

Der Vorteil dieser Formatierung wird deutlich, wenn JSON in einem Web Bereich angezeigt wird:

  • Standard Formatierung ohne Option *:

  • Formatierung mit Option * (pretty formatting):

Beispiel für Zeiger auf eine Variable:

 C_OBJECT($MyTestVar)
 C_TEXT($name ;$jsonstring )
 OB SET($MyTestVar;"name";->$name// Objekt Definition
  // $MyTestVar= {"name":"->$name"}
 
 $jsonstring :=JSON Stringify($MyTestVar)
  // $jsonstring ="{"name":""}"
  //...
 
 $name:="Smith"
 $jsonstring :=JSON Stringify($MyTestVar)
  //$jsonstring = "{"name" : "Smith"}"

Ein 4D Objekt serialisieren:

 C_TEXT($varjsonTextserialized)
 C_OBJECT($Contact)
 OB SET($Contact;"firstname";"Alan")
 OB SET($Contact;"lastname";"Monroe")
 OB SET($Contact;"age";40)
 OB SET($Contact;"phone";"[555-0100,555-0120]")
 
 $varjsonTextserialized:=JSON Stringify($Contact)
 
  // $varjsonTextserialized = "{"lastname":"Monroe","phone":"[555-0100,
  // 555-0120]","age":40,"firstname":"Alan"}"

Serialisierung eines 4D Objekts mit einem Datumswert (Paris Zeitzone). Der Ergebnisstring richtet sich nach der aktuellen Datumseinstellung der Datenbank.

 C_TEXT($varjsonTextserialized)
 C_OBJECT($Contact)
 OB SET($Contact;"name";"Smith";"birthday";!22/10/1975!)
 $varjsonTextserialized:=JSON Stringify($Contact)

  • Ist die Option "Verwende Datumstyp statt ISO Datumsformat in Objekten" nicht markiert:
    "name":"Smith",
    "birthday":"1975-10-21T22:00:00.000Z"
  • Ist die Option "Verwende Datumstyp statt ISO Datumsformat in Objekten" markiert:
    "name":"Smith",
    "birthday":"1975-10-22"

Hinweis: Weitere Informationen dazu finden Sie auf der Seite Kompatibilität.

Eine Collection konvertieren:

 C_COLLECTION($myCol)
 C_TEXT($myTxtCol)
 $myCol:=New collection(33;"mike";!28/08/2017!;False)
 $myTxtCol:=JSON Stringify($myCol)"

  • Ist die Option "Verwende Datumstyp statt ISO Datumsformat in Objekten" nicht markiert:
    $myTxtCol="[33,"mike","2017-08-27T22:00:00.000Z",false]"
  • Ist die Option "Verwende Datumstyp statt ISO Datumsformat in Objekten" markiert:
    $myTxtCol="[33,"mike","2017-08-28",false]"

Hinweis: Weitere Informationen dazu finden Sie auf der Seite Kompatibilität.



Siehe auch 

JSON Parse
JSON Stringify array

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: JSON
Nummer: 1217

Dieser Befehl kann in preemptive Prozessen laufen

 
SEITENINHALT 
 
GESCHICHTE 

Erstellt: 4D v14
Geändert: 4D v16 R4
Geändert: 4D v16 R6

 
ARTIKELVERWENDUNG

4D Programmiersprache ( 4D v20 R7)