Lägger till eller ändrar ett element i JSON-data som angetts av ett objektnamn, ett matrisindex eller en sökväg.
JSONSetElement ( json ; nyckelEllerIndexEllerSökväg ; värde ; typ )
json
– ett textuttryck eller -fält som innehåller ett JSON-objekt eller -matris.
nyckelEllerIndexEllerSökväg
– textuttryck eller -fält som specificerar ett JSON-objektnamn (nyckel), ett matrisindex eller en sökväg. Mer information finns i Arbeta med JSON-funktionerna.
värde
– ett värde eller ett fält som innehåller ett tal, text eller JSON-data.
typ
– ett namngivet värde som anger typen av data som ska ställas in (se nedan).
text
FileMaker Pro 16.0
Denna funktion returnerar json
med värde
inställt på angivet nyckelEllerIndexEllerSökväg
. Om json
-parametern är tom (""), lägger denna funktion till värde
till ett JSON-objekt (inom parenteser { }), om inte den första delen av nyckelEllerIndexEllerSökväg
-parametern inleds med tecknet "[". I detta fall lägger funktionen till värde
till en JSON-matris (inom parentes [ ]).
Använd ett av följande värden för parametern typ
. När värde
läggs till i json
anger parametern typ
om värde
ska omvandlas till en specifik JSON-typ eller om värde
ska läggas till utan att typen ändras.
| Inmatningstyp för | Utdatatyp |
| FileMaker-text | JSON-sträng (" ") |
| FileMaker-nummer | JSON-nummer |
| JSON-objekt | JSON-objekt ( { } ) |
| JSON-matris | JSON-matris ( [ ] ) |
| FileMaker-värde eller JSON booleskt värde | JSON Booleskt |
| Typ ignoreras | JSON null |
| JSON-element | JSON-element (eller JSON-sträng, om |
1. Du kan ange typ
med det namngivna värdet eller det numeriska värdet inom parentes – t.ex. JSONString
eller 1.
För JSONBoolean
gäller att om värde
är true
eller ett tal skilt från noll, så behandlas det som sant. Om värde
är false
eller noll behandlas det som falskt. Annars bestäms om värde
är sant eller falskt på samma sätt som för test
-parametern i funktionen If.
För JSONRaw
bearbetar JSON-tolken värde
för att avgöra om det använder giltig JSON-syntax. Om värde
är giltig JSON används det tolkade resultatet i denna funktions returnerade värde utan att omvandla element till datatyper för JSON. Alla tecken efter det första JSON-elementet i värde
ignoreras – om värde
är "4,2", kommer bara "4" att infogas, eftersom ett komma är separator mellan element i JSON-syntax. Om värde
inte är giltig JSON så omvandlas värde
till en JSON-sträng i det returnerade värdet.
Du kan ställa in flera element genom att ange ytterligare nyckelEllerIndexEllerSökväg
-, värde
- och typ
-parametrar i parenteser [ ] för varje element. Följande syntax ställer in N element på en gång:
JSONSetElement ( json ;
[ nyckelEllerIndexEllerSökväg1 ; värde1 ; typ1 ] ;
[ nyckelEllerIndexEllerSökväg2 ; värde2 ; typ2 ] ;
...
[ nyckelEllerIndexEllerSökvägN ; värdeN ; typN ]
)
•Denna funktion stöds inte i runtime-lösningar och returnerar "?".
Lägger till en nyckel och dess värde till roten i ett JSON-objekt.
JSONSetElement ( "{ \"a\" : 11 }" ; "b" ; 22.23 ; JSONNumber )
returnerar {"a":11,"b":22,23}.
Lägger till ett JSON-objekt som ett element i ett annat JSON-objekt. Om $$JSON-variabeln har värdet
{
"a" : {
"id" : 12,
"lnk" : 34
}
}
så kommer
JSONFormatElements (
JSONSetElement ( $$JSON ; "b" ; "{ \"id\" : 14, \"lnk\" : 73 } " ;
JSONObject
)
)
att returnera
{
"a" :
{
"id" : 12,
"lnk" : 34
},
"b" :
{
"id" : 14,
"lnk" : 73
}
}
Ändrar värdena för nycklarna "special" och "lager" i det första "produkt"-elementet i matrisen för de Exempel på JSON-data som finns i $$JSON-variabeln.
JSONFormatElements (
JSONSetElement ( $$JSON ;
[ "bageri.produkt[0].special" ; 0 ; JSONBoolean ] ;
[ "bageri.produkt[0].lager" ; 0 ; JSONNumber ]
)
)
returnerar samma data som i $$JSON men med det första elementet i "produkt"-matrisen ändrat till
{
"kategori" : "Bröd",
"id" : "FB1",
"namn" : "Munkar",
"pris" : 1,99,
"special" : false,
"lager" : 0
}