Todos os produtos
Search
Central de documentação

MaxCompute:JSON_SET

Última atualização: Jun 26, 2026

Substitui ou insere um valor em uma posição específica de um documento JSON.

Sintaxe

JSON json_set(JSON <input>, ARRAY<STRING> <path>, JSON <value>, BOOLEAN <create_if_missing>);

Parâmetros

Parâmetro

Tipo

Obrigatório

Descrição

input

JSON

Sim

Array ou objeto JSON a modificar.

path

ARRAY

Sim

Posição de destino, expressa como um array de strings em que cada elemento representa um nível de aninhamento. Para referenciar um índice de array, use sua representação numérica em string, como "0" para o primeiro elemento.

value

JSON

Sim

Valor JSON a gravar na posição de destino.

create_if_missing

BOOLEAN

Sim

Define o comportamento quando a posição de destino não existe. Valores válidos: true (adiciona um valor na posição especificada) e false (padrão; não adiciona valor se a posição não existir).

Valor de retorno

Retorna o valor JSON modificado.

Exemplos

Substituir um valor existente

Substitua f1 (índice 0, campo f1) por [2,3,4]:

SELECT json_set(
  JSON '[{"f1":1,"f2":null},2,null,3]',
  array("0", "f1"),
  JSON '[2,3,4]',
  false
);

Resultado:

[{"f1":[2,3,4],"f2":null},2,null,3]

Tentativa de substituição em caminho inexistente (create_if_missing=false)

O caminho f3 não existe no primeiro elemento. Como create_if_missing está definido como false, a função retorna o JSON original sem alterações:

SELECT json_set(
  JSON '[{"f1":1,"f2":null},2,null,3]',
  array("0", "f3"),
  JSON '[2,3,4]',
  false
);

Resultado:

[{"f1":1,"f2":null},2,null,3]

Inserir valor em caminho inexistente (create_if_missing=true)

O caminho f3 não existe no primeiro elemento. Com create_if_missing definido como true, a função adiciona f3 como nova chave:

SELECT json_set(
  JSON '[{"f1":1,"f2":null},2,null,3]',
  array("0", "f3"),
  JSON '[2,3,4]',
  true
);

Resultado:

[{"f1":1,"f2":null,"f3":[2,3,4]},2,null,3]