JSONSetElement
Zweck
Fügt ein Element in JSON-Daten hinzu bzw. ändert es, das durch einen Objektnamen, einen Arrayindex oder einen Pfad spezifiziert wird.
Format
JSONSetElement(json;SchlüsselOderIndexOderPfad;Wert;Typ)
Parameter
json - beliebiger Textausdruck oder Feld, das ein JSON-Objekt oder -Array enthält.
SchlüsselOderIndexOderPfad - beliebiger Textausdruck oder Feld, das einen JSON-Objektnamen (Schlüssel), einen Array-Index oder einen Pfad enthält. Weitere Informationen finden Sie unter
Arbeiten mit den JSON-Funktionen.
Wert - beliebiger Ausdruck oder Feld, das eine Zahl, Text oder JSON-Daten enthält.
Typ - ein benannter Wert, der den Typ der festzulegenden Daten angibt (siehe unten).
Zurückgegebener Datentyp
Text
Ursprung in
FileMaker Pro 16.0
Beschreibung
Diese Funktion gibt json zurück, wobei Wert auf den angegebenen SchlüsselOderIndexOderPfad gesetzt ist. Wenn der Parameter json leer ist (""), fügt diese Funktion den Wert zu einem JSON-Objekt (in geschweiften Klammern { }) hinzu, es sei denn, der erste Teil des Parameters SchlüsselOderIndexOderPfad beginnt mit einem [-Zeichen. In diesem Fall fügt die Funktion den Wert zu einem JSON-Array hinzu (in eckigen Klammern [ ]).
Verwenden Sie für den Parameter Typ einen der folgenden benannten Werte, um den Datentyp für den Parameter Wert anzugeben.
Typ | Angegebener Wert ist |
JSONString | Zeichenfolge („ “) |
JSONNumber | Zahl |
JSONObject | Objekt ( { } ) |
JSONArray | Array ( [ ] ) |
JSONBoolean | Boolean |
JSONNull | Null |
JSONRaw | Vom JSON-Parser zu bestimmen |
Wenn für
JSONBoolean der
Wert das Ergebnis
true (in Kleinbuchstaben) hat, wird er als wahr behandelt. Anderenfalls wird der
Wert wie der Parameter
test in der
Wenn Funktion als „true“ oder „false“ ermittelt.
Für JSONRaw wird Wert durch den JSON-Parser verarbeitet. Wenn es sich bei Wert um gültige JSON-Daten handelt, wird das analysierte Ergebnis im zurückgegebenen Wert dieser Funktion verwendet. Anderenfalls wird Wert als eine JSON-Zeichenfolge verwendet.
Sie können mehrere Elemente festlegen, indem Sie für jedes Element einen zusätzlichen Satz an SchlüsselOderIndexOderPfad-, Wert- und Typ-Parametern in eckigen Klammern [ ] hinzufügen. Die folgende Syntax legt N Elemente gleichzeitig fest:
JSONSetElement ( json ;
[ SchlüsselOderIndexOderPfad1; Wert1 ; Typ1 ] ;
[ SchlüsselOderIndexOderPfad2 ; Wert2 ; Typ2 ] ;
...
[ SchlüsselOderIndexOderPfadN ; WertN ; TypN ]
)
Hinweise
•Diese Funktion wird in Runtime-Lösungen nicht unterstützt und gibt „?“ zurück.
Beispiel 1
Fügt einen Schlüssel und seinen Wert zur Root-Ebene eines JSON-Objekts hinzu.
JSONSetElement ( "{ \"a\" : 11 }" ; "b" ; 22.23 ; JSONNumber ) gibt {"a":11,"b":22.23} zurück.
Beispiel 2
Fügt ein JSON-Objekt als Element eines anderen JSON-Objekts hinzu. Wenn die Variable $$JSON wie folgt eingestellt ist:
{
"a" : {
"ID" : 12;
"lnk" : 34
}
}
Dann liefert
JSONFormatElements (
JSONSetElement ( $$JSON ; "b" ; "{ \"id\" : 14, \"lnk\" : 73 } " ;
JSONObject
)
)
dieses Ergebnis
{
"a" :
{
"ID" : 12;
"lnk" : 34
},
"b" :
{
"ID" : 14;
"link" : 73
}
}
Beispiel 3
Bezieht aus den
Beispiel für JSON-Daten, die in der Variablen $$JSON gespeichert sind, die Werte der Schlüssel „Angebot“ und „Bestand“ im ersten „Produkt“-Element im Array.
JSONFormatElements (
JSONSetElement ( $$JSON ;
[ "Bäckerei.Produkt[0].Angebot" ; 0 ; JSONBoolean ] ;
[ "Bäckerei.Produkt[0].Bestand" ; 0 ; JSONNumber ]
)
)
Gibt dieselben Daten zurück wie in $$JSON, allerdings ist das erste Element des Arrays „Produkt“ wie folgt geändert:
{
"Kategorie" : "Brot",
"ID" : "FB1",
"Name" "Donuts",
"Preis" : 1,99,
"Angebot" : false,
"Bestand" : 0
}
Weiterführende Themen