JSONSetElement
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 Arrayindex 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 numerischer Wert, der den Typ der festzulegenden Daten angibt (siehe unten).
Zurückgegebener Datentyp
Text
Ursprung in Version
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 Werte. Wenn Wert
in json
hinzugefügt wird, gibt der Parameter Typ
an, ob der Wert
in einen bestimmten JSON-Typ konvertiert wird oder ob Wert
ohne Änderung des Typs eingefügt wird.
Parameter |
Eingabetyp für Parameter |
Ausgabetyp |
|
FileMaker-Text |
JSON-Zeichenfolge (" ") |
|
FileMaker-Zahl |
JSON-Zahl |
|
JSON-Objekt |
JSON-Objekt ( { } ) |
|
JSON-Array |
JSON-Array ( [ ] ) |
|
FileMaker-Wert oder boolescher JSON-Wert |
JSON-Boolesch |
|
Typ wird ignoriert |
JSON Null |
|
JSON-Element |
JSON-Element (oder JSON-Zeichenfolge, wenn |
-
Sie können
Typ
entweder über den benannten Wert oder den numerischen Wert in Klammern ohne Anführungszeichen angeben, z. B.JSONString
oder 1.
JSONBoolean
wird, wenn Wert
true
oder eine Zahl ungleich null ist, als „true“ behandelt; wenn Wert
false
oder null ist, wird er als „false“ behandelt. Anderenfalls wird der Wert
wie der Parameter test
in der Funktion „Wenn“ als „true“ oder „false“ ermittelt.
Für JSONRaw
verarbeitet der JSON-Parser Wert
, um zu bestimmen, ob er gültige JSON-Syntax verwendet. Wenn es sich bei Wert
um gültige JSON-Daten handelt, wird das analysierte Ergebnis im zurückgegebenen Wert dieser Funktion verwendet, ohne Elemente zu JSON-Datentypen zu konvertieren. Zeichen nach dem ersten JSON-Element in Wert
werden ignoriert, zum Beispiel, wenn Wert
is „4,2“ ist, wird nur „4“ eingefügt, da ein Komma das Trennzeichen zwischen Elementen in JSON-Syntax ist. Wenn Wert
keine gültige JSON-Daten enthält, wird Wert
im zurückgegebenen Wert zu einer JSON-Zeichenfolge konvertiert.
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 ]
)
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:
Dann liefert
JSONFormatElements (
JSONSetElement ( $$JSON ; "b" ; "{ \"id\" : 14, \"lnk\" : 73 } " ;
JSONObject
)
)
dieses Ergebnis
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 ;
[ "Baeckerei.Produkt[0].Angebot" ; 0 ; JSONBoolean ] ;
[ "Baeckerei.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
}