JSONSetElement

Aggiunge o modifica un elemento nei dati JSON specificato dal nome di un oggetto, da un indice di matrice o da un percorso.

Formato 

JSONSetElement ( json ; chiaveOIndiceOPercorso ; valore ; tipo )

Parametri 

json - qualsiasi espressione di testo o campo contenente un oggetto o una matrice JSON.

chiaveOIndiceOPercorso - qualsiasi espressione di testo o campo che specifica il nome di un oggetto JSON (chiave), un indice di matrice o un percorso. Vedere Utilizzo delle funzioni JSON.

valore - qualsiasi espressione o campo contenente un numero, testo o dati JSON.

tipo - un valore numerico che specifica il tipo di dati da impostare (vedere di seguito).

Tipo di dati riportato 

Testo

Creata nella versione 

16.0

Descrizione 

Questa funzione restituisce json con valore impostato al parametro chiaveOIndiceOPercorso specificato. Se il parametro json è vuoto (""), questa funzione aggiunge valore a un oggetto JSON (tra parentesi graffe { }), a meno che la prima parte del parametro chiaveOIndiceOPercorso non inizi con un carattere "[". In tal caso, questa funzione aggiunge valore a una matrice JSON (tra parentesi [ ]).

Per il parametro tipo, utilizzare uno dei seguenti valori. Se a json viene aggiunto valore, il parametro tipo specifica se convertire valore in un tipo JSON specifico o inserire valore senza cambiare il tipo.

Parametro tipo1

Tipo di input per parametro valore

Tipo di output

JSONString (1)

Testo FileMaker

Stringa JSON (" ")

JSONNumber (2)

Numero FileMaker

Numero JSON

JSONObject (3)

Oggetto JSON

Oggetto JSON ( { } )

JSONArray (4)

Matrice JSON

Matrice JSON ( [ ] )

JSONBoolean (5)

Valore FileMaker o valore booleano JSON

Valore booleano JSON

JSONNull (6)

tipo viene ignorato

Valore nullo JSON

JSONRaw (0)

Elemento JSON

Elemento JSON (o stringa JSON, se valore non è un valore JSON valido)

  1. È possibile specificare tipo utilizzando la costante denominata o il valore numerico indicato tra parentesi (ad esempio, JSONString o 1) senza virgolette.

Per JSONBoolean, se valore è true o un numero diverso da zero, viene trattato come vero; se valore è false o zero, viene trattato come falso. In caso contrario, se valore è true o false viene determinato nello stesso modo del parametro test nella funzione If.

Per JSONRaw, il parser JSON elabora valore per stabilire se utilizza una sintassi JSON valida. Se valore è un valore JSON valido, il risultato analizzato viene utilizzato nel valore restituito di questa funzione senza convertire alcun elemento in tipi di dati JSON. Eventuali caratteri dopo il primo elemento JSON in valore vengono ignorati; ad esempio, se valore è "4,2", viene inserito solo "4", perché nella sintassi JSON una virgola è il separatore tra gli elementi. Se valore non è un valore JSON valido, valore viene convertito in una stringa JSON nel valore restituito.

È possibile impostare più elementi fornendo un insieme di parametri chiaveOIndiceOPercorso, valore e tipo aggiuntivo tra parentesi [ ] per ciascun elemento. La sintassi di seguito imposta N elementi in una volta sola:

Copia
JSONSetElement ( json ; 
   [ chiaveOIndiceOPercorso1 ; valore1 ; tipo1 ] ; 
   [ chiaveOIndiceOPercorso2 ; valore2 ; tipo2 ] ; 
   ...
   [ chiaveOIndiceOPercorsoN ; valoreN ; tipoN ] ;
)

Esempio 1 

Aggiunge una chiave e il relativo valore al livello principale di un oggetto JSON.

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

Esempio 2 

Aggiunge un oggetto JSON come elemento di un altro oggetto JSON. Se la variabile $$JSON è impostata su

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

allora

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

restituisce

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

Esempio 3 

Nei Dati JSON di esempio memorizzati nella variabile $$JSON, modifica i valori delle chiavi "specialità" e "magazzino" nel primo elemento "prodotto" nella matrice.

Copia
JSONFormatElements ( 
   JSONSetElement ( $$JSON ; 
   [ "panificio.prodotto[0].specialità" ; 0 ; JSONBoolean ] ; 
   [ "panificio.prodotto[0].magazzino" ; 0 ; JSONNumber ] 
   )
)

restituisce gli stessi dati in $$JSON, ma con il primo elemento della matrice "prodotto" modificato in

Copia
{
    "categoria" : "Pani",
    "id" : "FB1",
    "nome" : "Donuts",
    "prezzo" : 1.99,
    "specialità" : false,
    "magazzino" : 0
}