JSONSetElement
Propósito
Añade o modifica un elemento de datos de JSON especificado por un nombre de objeto, un índice de matriz o una ruta.
Formato
JSONSetElement(json;keyOrIndexOrPath;valor;tipo)
Parámetros
json: cualquier expresión o campo de texto que contenga un objeto o una matriz de JSON.
keyOrIndexOrPath: cualquier expresión o campo de texto que especifique un nombre de objeto (clave), un índice de matriz o una ruta de JSON. Consulte
Uso de las funciones de JSON.
valor: cualquier expresión o campo de texto que contenga un número, texto o datos de JSON.
tipo: un valor con nombre que especifica el tipo de datos que se va a establecer (consulte la información mostrada a continuación).
Tipo de datos devuelto
texto
Se origina en
FileMaker Pro 16.0
Descripción
Esta función devuelve json con un valor establecido en el parámetro keyOrIndexOrPath especificado. Si el parámetro json se deja en blanco (""), esta función añade un valor a un objeto de JSON (entre llaves { }), a menos que la primera parte del parámetro keyOrIndexOrPath empiece con el carácter "[". En ese caso, esta función añade un valor a una matriz de JSON (entre corchetes [ ]).
Para el parámetro tipo, utilice uno de los siguientes valores con nombre para especificar el tipo de datos del parámetro valor.
tipo | valor especificado |
JSONString | Cadena (" ") |
JSONNumber | Número |
JSONObject | Objeto ( { } ) |
JSONArray | Matriz ( [ ] ) |
JSONBoolean | Valor booleano |
JSONNull | Valor nulo |
JSONRaw | Se determina en función del analizador de JSON |
En
JSONBoolean, si el
valor es
true (en minúsculas), se trata como verdadero. De lo contrario, si el
valor es "true" (verdadero) o "false" (falso), se determina igual que si el parámetro
prueba se encontrase en la
función If.
En JSONRaw, el analizador de JSON proceso el valor. Si el valor son datos de JSON válidos, el resultado analizado se utiliza en el valor devuelto de esta función. De lo contrario, el valor se utiliza como cadena de JSON.
Puede establecer varios elementos proporcionando un conjunto adicional de parámetros keyOrIndexOrPath, valor, y tipo entre corchetes, "[ ]", para cada elemento. La siguientes sintaxis establece N elementos a la vez:
JSONSetElement ( json ;
[ keyOrIndexOrPath1 ; valor1 ; tipo1 ] ;
[ keyOrIndexOrPath2 ; valor2 ; tipo2 ] ;
...
[ keyOrIndexOrPathN ; valorN ; tipoN ]
)
Notas
•Esta función no se admite en las soluciones de tiempo de ejecución y devuelve "?".
Ejemplo 1
Añade una clave y su valor a la raíz de un objeto de JSON.
JSONSetElement ( "{ \"a\" : 11 }" ; "b" ; 22.23 ; JSONNumber ) devuelve {"a":11,"b":22.23}.
Ejemplo 2
Añade un objeto de JSON como elemento de otro objeto de JSON. Si la variable $$JSON se ha establecido en
{
"a" : {
"id" : 12,
"lnk" : 34
}
}
then
JSONFormatElements (
JSONSetElement ( $$JSON ; "b" ; "{ \"id\" : 14, \"lnk\" : 73 } " ;
JSONObject
)
)
devuelve
{
"a" :
{
"id" : 12,
"lnk" : 34
},
"b" :
{
"id" : 14,
"link" : 73
}
}
Ejemplo 3
En los
Datos de JSON de ejemplo almacenados en la variable $$JSON variable, cambia los valores de las claves "especialidad" y "existencias" del primer elemento "producto" de la matriz.
JSONFormatElements (
JSONSetElement ( $$JSON ;
[ "producto.panadería[0].especialidad" ; 0 ; JSONBoolean ] ;
[ "producto.panadería[0].existencias" ; 0 ; JSONNumber ]
)
)
devuelve los mismos datos en $$JSON, pero con el primer elemento de la matriz "producto" modificado como
{
"categoría" : "Panes",
"id" : "FB1",
"nombre" : "Rosquillas",
"precio" : 1,99,
"especialidad" : false,
"existencias" : 0
}
Temas relacionados