JSONSetElement

Voegt een element in JSON-gegevens, dat is opgegeven door een objectnaam, een array-index of een pad, toe of wijzigt het.

Opmaak 

JSONSetElement (json ; SleutelOfIndexOfPad ; waarde ; type)

Parameters 

json - een tekstuitdrukking of een veld dat een JSON-object of een array bevat.

SleutelOfIndexOfPad - een tekstuitdrukking of een veld dat een JSON-objectnaam (sleutel), een array-index of een pad opgeeft. Raadpleeg Werken met de JSON-functies.

waarde - een uitdrukking of een veld dat een getal, tekst of JSON-gegevens bevat.

type - een numerieke waarde dat het in te stellen type gegevens opgeeft (zie hieronder).

Resulterend gegevenstype 

tekst

Afkomstig uit versie 

16.0

Beschrijving 

Deze functie geeft als resultaat json met waarde ingesteld op het opgegeven SleutelOfIndexOfPad. Als de json-parameter leeg is (""), voegt deze functie waarde toe aam een JSON-object (tussen accolades { }), tenzij het eerste deel van de parameter SleutelOfIndexOfPad begint met een het teken "[". In dat geval voegt deze functie waarde toe aan een JSON-array (tussen vierkante haakjes [ ]).

Gebruik voor de parameter type een van de volgende waarden. Wanneer waarde wordt toegevoegd aan json, kunt u met de parameter type opgeven indien waarde moet worden geconverteerd naar een specifiek JSON-type of indien waarde moet worden ingevoegd zonder het type te wijzigen.

type parameter1

Invoertype voor parameter waarde

Uitvoertype

JSONString (1)

FileMaker-tekst

JSON-tekenreeks (" ")

JSONNumber (2)

FileMaker-getal

JSON-getal

JSONObject (3)

JSON-object

JSON-object ({ })

JSONArray (4)

JSON-array

JSON-array ([ ])

JSONBoolean (5)

FileMaker-waarde of logische waarde in JSON

Logische waarde in JSON

JSONNull (6)

Type wordt genegeerd

JSON null

JSONRaw (0)

JSON-element

JSON-element (of JSON-tekenreeks, als waarde geen geldige JSON is)

  1. U kunt type opgeven met de benoemde constante of de numerieke waarde die wordt weergegeven tussen haakjes, zoals JSONString of 1.

Voor JSONBoolean: als waarde true is of een getal verschillend van nul is, wordt deze behandeld als waar; als waarde false is of nul is, wordt deze behandeld als onwaar. Anders wordt bepaald of waarde true of false is op dezelfde manier als de parameter test in de If functie.

Voor JSONRaw: de JSON-parser verwerkt waarde om te bepalen of deze een geldige JSON-syntaxis gebruikt. Als waarde geldige JSON is, wordt het geparseerde resultaat gebruikt in de resulterende waarde van deze functie zonder elementen te converteren naar JSON-gegevenstypen. Alle tekens na het eerste JSON-element in waarde worden genegeerd. Als waarde bijvoorbeeld "4.2" is, wordt alleen "4" ingevoegd omdat een komma het scheidingsteken tussen elementen is volgens de JSON-syntaxis. Als waarde geen geldige JSON is, wordt waarde geconverteerd naar een JSON-tekenreeks in de resulterende waarde.

U kunt meerdere elementen instellen door een extra reeks parameters (SleutelOfIndexOfPad, waarde en type) tussen vierkante haakjes [ ] voor elk element op te geven. De volgende syntaxis stelt N elementen tegelijk in:

Kopiëren
JSONSetElement (json ; 
   [ SleutelOfIndexOfPad1 ; waarde1 ; type1] ; 
   [ SleutelOfIndexOfPad2 ; waarde2 ; type2] ; 
   ...
   [ SleutelOfIndexOfPadN ; waardeN ; typeN]
)

Voorbeeld 1 

Voegt een sleutel en de waarde ervan toe aan de root van een JSON-object.

JSONSetElement ("{ \"a\" : 11 }" ; "b" ; 22.23 ; JSONNumber ) geeft als resultaat {"a":11,"b":22.23}.

Voorbeeld 2 

Hiermee maakt u een array, voegt u een element (een JSON-object) toe met behulp van de syntaxis '[+]' en gebruikt u de syntaxis '[:]' om naar dat element te verwijzen als het laatste element in de array om een ander sleutelwaardepaar aan het object toe te voegen.

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

Geeft als resultaat [{"a":5,"b":6}].

Voorbeeld 3 

Voegt een JSON-object als een element van een ander JSON-object toe. Als de $$JSON-variabele is ingesteld op

Kopiëren
{
    "a" : {
        "id" : 12,
        "lnk" : 34
    }
}

dan geeft

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

als resultaat

Kopiëren
{
    "a"
    {
        "id" : 12,
        "lnk" : 34
    },
    "b"
    {
        "id" : 14,
        "lnk" : 73
    }
}

Voorbeeld 4 

Wijzigt in de Voorbeeld van JSON-gegevens van de $$JSON-variabele de waarden van de sleutels "speciaal" en "voorraad" in het eerste "product"-element in de array.

Kopiëren
JSONFormatElements ( 
   JSONSetElement ( $$JSON ; 
   [ "bakkerij.product[0].speciaal" ; 0 ; JSONBoolean ] ; 
   [ "bakkerij.product[0].voorraad" ; 0 ; JSONNumber ] 
   )
)

geeft als resultaat dezelfde gegevens als in $$JSON maar met het eerste element van de "product"-array gewijzigd in

Kopiëren
{
    "categorie" : "Broden",
    "id" : "FB1",
    "naam" : "Donuts",
    "prijs" : 1.99,
    "speciaal" : false,
    "voorraad" : 0
}