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 Typ1

Eingabetyp für Parameter Wert

Ausgabetyp

JSONString (1)

FileMaker-Text

JSON-Zeichenfolge (" ")

JSONNumber (2)

FileMaker-Zahl

JSON-Zahl

JSONObject (3)

JSON-Objekt

JSON-Objekt ( { } )

JSONArray (4)

JSON-Array

JSON-Array ( [ ] )

JSONBoolean (5)

FileMaker-Wert oder boolescher JSON-Wert

JSON-Boolesch

JSONNull (6)

Typ wird ignoriert

JSON Null

JSONRaw (0)

JSON-Element

JSON-Element (oder JSON-Zeichenfolge, wenn Wert kein gültiger JSON ist)

  1. 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:

Kopieren
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 

Erstellt ein Array, fügt mithilfe der „[+]“-Syntax ein Element (ein JSON-Objekt) hinzu und verwendet dann die „[:]“-Syntax, um dieses Element als letztes Element im Array zu referenzieren, damit dem Objekt ein weiteres Schlüssel-Wert-Paar hinzugefügt wird.

Kopieren
JSONSetElement( "[]"; 
    ["[+].a", 5, JSONNumber] ; 
    ["[:].b", 6, JSONNumber]
)

Gibt [{"a":5,"b":6}] zurück.

Beispiel 3 

Fügt ein JSON-Objekt als Element eines anderen JSON-Objekts hinzu. Wenn die Variable $$JSON wie folgt eingestellt ist:

Kopieren
{
    "a" : {
        "id" : 12,
        "lnk" : 34
    }
}

Dann liefert

Kopieren
JSONFormatElements ( 
   JSONSetElement ( $$JSON ; "b" ; "{ \"id\" : 14, \"lnk\" : 73 } " ; 
      JSONObject 
   )
)

dieses Ergebnis

Kopieren
{
    "a"
    {
        "id" : 12,
        "lnk" : 34
    },
    "b"
    {
        "id" : 14,
        "lnk" : 73
    }
}

Beispiel 4 

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.

Kopieren
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:

Kopieren
{
   "Kategorie" : "Brot",
    "ID" : "LB1",
    "Name" : "Donuts",
    "Preis" : 1.99,
    "Angebot" : false,
    "Bestand" : 0
}