JSONSetElement
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 numérico 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
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 [ ]).
En el parámetro tipo
, utilice uno de los siguientes valores: Si el valor
se ha añadido a json
, el parámetro tipo
determina si se convertirá el valor
a un tipo JSON específico o se insertará el valor
sin cambiar el tipo.
parámetro |
Tipo de entrada para el parámetro |
Tipo de salida |
|
Texto de FileMaker |
Cadena JSON (" ") |
|
Número de FileMaker |
Número JSON |
|
Objeto JSON |
Objeto JSON ( { } ) |
|
Matriz JSON |
Matriz JSON ( { } ) |
|
Valor de FileMaker o valor booleano JSON |
Valor booleano JSON |
|
Se omite el tipo. |
JSON nulo |
|
Elemento JSON |
Elemento JSON (o una cadena JSON si el |
-
Puede especificar el
tipo
utilizando la constante especificada o el valor numérico que se muestra entre paréntesis como, por ejemplo,JSONString
o 1, sin comillas.
Para JSONBoolean
, si el valor
es true
(verdadero) o un número distinto a cero, se trata como verdadero; si el valor
es false
(falso) o cero, se trata como falso. De lo contrario, si el valor
es "true" o "false", se determina igual que si el parámetro prueba
se encontrase en la función If.
Para JSONRaw
, el analizador JSON procesa el valor
para determinar si utiliza una sintaxis JSON válida. Si el valor
son datos de JSON válidos, el resultado analizado se utiliza en el valor devuelto de esta función sin convertir ningún elemento a los tipos de datos de JSON. Se omitirán todos los caracteres tras el primer elemento JSON en el valor
; por ejemplo, si el valor
es "4,2", solo se insertará "4", porque una coma es el separador entre los elementos en la sintaxis JSON. Si el valor
no es un elemento JSON válido, este se convierte en una cadena JSON en el valor devuelto.
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 ]
)
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
then
JSONFormatElements (
JSONSetElement ( $$JSON ; "b" ; "{ \"id\" : 14, \"lnk\" : 73 } " ;
JSONObject
)
)
devuelve
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 ;
[ "panadería.producto[0].especialidad" ; 0 ; JSONBoolean ] ;
[ "panadería.producto[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
}