Dies ist die alte 4D Dokumentations-Website. Die neue und aktualisierte Dokumentation finden Sie unter developer.4d.com |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v20 R7
JSON Stringify
|
JSON Stringify ( Wert {; *} ) -> Funktionsergebnis | ||||||||
Parameter | Typ | Beschreibung | ||||||
Wert | Objekt, Mixed |
![]() |
Daten zum Konvertieren in JSON String | |||||
* | Operator |
![]() |
Formatierung aktivieren | |||||
Funktionsergebnis | Text |
![]() |
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:
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:
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)
"name":"Smith",
"birthday":"1975-10-21T22:00:00.000Z"
"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)"
$myTxtCol="[33,"mike","2017-08-27T22:00:00.000Z",false]"
$myTxtCol="[33,"mike","2017-08-28",false]"
Hinweis: Weitere Informationen dazu finden Sie auf der Seite Kompatibilität.
Produkt: 4D
Thema: JSON
Nummer:
1217
Erstellt: 4D v14
Geändert: 4D v16 R4
Geändert: 4D v16 R6
4D Programmiersprache ( 4D v20 R7)