Referência > Referência de funções > Funções de texto > JSONSetElement
 
JSONSetElement
Propósito 
Adiciona ou modifica um elemento em dados JSON especificado por um nome de objeto, um índice de matriz ou um caminho.
Formato 
JSONSetElement(JSON;ChaveOuÍndiceOuCaminho;valor;tipo)
Parâmetros 
JSON - qualquer expressão de texto ou campo que contém um objeto ou matriz JSON.
ChaveOuÍndiceOuCaminho - qualquer expressão de texto ou campo que especifica um nome de objeto (chave), um índice de matriz ou caminho JSON. Consulte Utilização das funções JSON.
valor - qualquer expressão ou campo que contém um número, texto ou dados JSON.
tipo - um valor nomeado que especifica o tipo de dados a ser definido (consulte a seguir).
Tipo de dados retornado 
texto
Originado em 
FileMaker Pro 16.0
Descrição 
Essa função retorna JSON com o valor definido em ChaveOuÍndiceOuCaminho. Se o parâmetro JSON estiver vazio (""), essa função adiciona valor a um objeto JSON (entre chaves { }), a menos que a primeira parte do parâmetro ChaveOuÍndiceOuCaminho comece com um caractere "[". Nesse caso, essa função adiciona valor a uma matriz JSON (entre colchetes [ ]).
Para o parâmetro tipo, use um dos valores nomeados a seguir para especificar o tipo de dados no parâmetro valor.
 
tipo
Especifica se valor é
JSONString
Cadeia (" ")
JSONNumber
Número
JSONObject
Objeto ( { } )
JSONArray
Matriz ( [ ] )
JSONBoolean
Booleano
JSONNull
Nulo
JSONRaw
A ser determinado pelo analisador JSON
Para JSONBoolean, se valor for igual a true (em letras minúsculas), ele é tratado como true. Caso contrário, a determinação de valor ser true ou false é feita da mesma forma que o caso do parâmetro teste estar na If função ou não.
Para JSONRaw, valor é processado pelo analisador JSON. Se valor for um dado JSON válido, o resultado analisado é usado no valor retornado por essa função. Caso contrário, valor é usado como uma cadeia JSON.
Você pode definir múltiplos elementos fornecendo um conjunto adicional de parâmetros ChaveOuÍndiceOuCaminho, valor e tipo entre colchetes [ ] para cada elemento. A sintaxe a seguir define N elementos de uma vez:
JSONSetElement(JSON;
   [ ChaveOuÍndiceOuCaminho1; valor1; tipo1 ];
   [ ChaveOuÍndiceOuCaminho2; valor2; tipo2 ];
   ...
   [ ChaveOuÍndiceOuCaminhoN; valorN; tipoN ]
)
Notas 
Esta função não é compatível com soluções em tempo de execução e retorna "?".
Exemplo 1 
Adiciona uma chave e seu valor à raiz de um objeto JSON.
JSONSetElement("{ \"a\" : 11 }"; "b"; 22.23; JSONNumber) retorna {"a":11,"b":22.23}.
Exemplo 2 
Adiciona um objeto JSON como um elemento de outro objeto JSON. Se a variável $$JSON estiver definida como
{
"a" : {
"id" : 12,
"lnk" : 34
}
}
então
JSONFormatElements(
   JSONSetElement($$JSON; "b"; "{ \"id\" : 14, \"lnk\" : 73 } ";
      JSONObject
   )
)
retorna
{
"a" :
{
"id" : 12,
"lnk" : 34
},
"b" :
{
"id" : 14,
"link" : 73
}
}
Exemplo 3 
A partir dos Exemplo de dados JSON armazenados na variável $$JSON, altera os valores das chaves "especial" e "estoque" no primeiro elemento de "produto" na matriz.
JSONFormatElements(
   JSONSetElement($$JSON;
   [ "padaria.produto[0].especial"; 0; JSONBoolean ];
   [ "padaria.produto[0].estoque"; 0; JSONNumber ];
   )
)
retorna os mesmos dados de $$JSON, mas com o primeiro elemento da matriz "produto" alterado para
{
"categoria" : "Pães",
"id" : "FB1",
"nome" : "Rosquinhas",
"preço" : 1,99,
"especial" : false,
"estoque" : 0
}
Tópicos relacionados 
Referência de funções (lista de categorias)
Referência de funções (lista em ordem alfabética)
Sobre fórmulas
Sobre funções
Definição de campos de cálculo
Utilização de operadores em fórmulas
Utilização das funções JSON