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
Typentweder über den benannten Wert oder den numerischen Wert in Klammern ohne Anführungszeichen angeben, z. B.JSONStringoder 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
}