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