Referencia > Referencia de funciones > Funciones JSON > JSONSetElement
 

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 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 [ ]).

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 tipo1

Tipo de entrada para el parámetro valor

Tipo de salida

JSONString (1)

Texto de FileMaker

Cadena JSON (" ")

JSONNumber (2)

Número de FileMaker

Número JSON

JSONObject (3)

Objeto JSON

Objeto JSON ( { } )

JSONArray (4)

Matriz JSON

Matriz JSON ( { } )

JSONBoolean (5)

Valor de FileMaker o valor booleano JSON

Valor booleano JSON

JSONNull (6)

Se omite el tipo.

JSON nulo

JSONRaw (0)

Elemento JSON

Elemento JSON (o una cadena JSON si el valor no es un elemento JSON válido)

1. Puede especificar el tipo utilizando el valor especificado o el valor numérico que se muestra entre paréntesis como, por ejemplo, JSONString or1.

Para JSONBoolean, si el valor es true o un número distinto a cero, se trata como verdadero; si el valor es false 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 ]
)

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,
"lnk" : 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 ;
   [ "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
}

Temas relacionados 

Referencia de funciones (lista de categorías)

Referencia de funciones (orden alfabético)

Acerca de las fórmulas

Notas acerca de las funciones

Definir campos de cálculo

Operadores en fórmulas

Uso de las funciones de JSON