Todos os produtos
Search
Central de documentação

MaxCompute:FROM_JSON

Última atualização: Sep 22, 2026

Retorna dados dos tipos ARRAY, MAP ou STRUCT com base na string JSON especificada em jsonStr e no formato de saída definido em schema.

Sintaxe

from_json(<jsonStr>, <schema>)

Parâmetros

  • jsonStr: obrigatório. A string JSON de entrada.

  • schema: obrigatório. O schema da string JSON. O valor deste parâmetro deve ter o mesmo formato da instrução de criação de tabela, como array<bigint>, map<string, array<string>> ou struct<a:int, b:double, .

    Nota

    As chaves em uma struct diferenciam maiúsculas de minúsculas. Especifique a struct no formato a BIGINT, b DOUBLE, que equivale a STRUCT<a:BIGINT, b:DOUBLE>.

    A tabela a seguir descreve os mapeamentos entre os tipos de dados JSON e os tipos de dados do MaxCompute.

    Tipo de dados JSON

    Tipo de dados do MaxCompute

    OBJECT

    STRUCT, MAP e STRING

    ARRAY

    ARRAY e STRING

    NUMBER

    TINYINT, SMALLINT, INT, BIGINT, FLOAT, DOUBLE, DECIMAL e STRING

    BOOLEAN

    BOOLEAN e STRING

    STRING

    STRING, CHAR, VARCHAR, BINARY, DATE e DATETIME

    NULL

    Todos os tipos

    Nota

    O sistema analisa as strings JSON dos tipos OBJECT e ARRAY tanto quanto possível. Se o tipo de dados da string JSON não tiver mapeamento para nenhum tipo de dados do MaxCompute, o sistema omite a string. Para facilitar o uso, é possível converter todos os tipos de dados JSON para o tipo STRING, compatível com o MaxCompute. Ao converter uma string JSON para um valor dos tipos FLOAT, DOUBLE ou DECIMAL, não há garantia de precisão nas casas decimais. Recomendamos usar a função GET_JSON_OBJECT, ou converter a string JSON para o tipo STRING e, em seguida, converter o valor obtido para FLOAT, DOUBLE ou DECIMAL.

Valor de retorno

Retorna um valor do tipo ARRAY, MAP ou STRUCT.

FROM_JSON

  • Exemplo 1: Converta uma string JSON específica em um valor de um tipo de dados específico. Instruções de exemplo:

    -- The return value is {a:1,b:0.8}. 
    select from_json('{"a":1, "b":0.8}', 'a int, b double');
    
    -- The return value is {time:26/08/2015}. 
    select from_json('{"time":"26/08/2015"}', 'time string');
    
    -- The return value is {a:1, b:0.8, c:NULL}. 
    select from_json('{"a":1, "b":0.8}', 'a int, b double, c string');
    
    -- The return value is [1,2,3]. 
    select from_json('[1, 2, 3, "a"]', 'array<bigint>');
    
    -- The return value is {a:1, b:[1,2,3], c:{}, d:v}. 
    select from_json('{"a":1,"b":[1,2,3],"c":{},"d":"v"}', 'map<string, string>');
  • Exemplo 2: Use as funções map_keys e from_json para obter todas as chaves em uma string JSON. Use também JSON_KEYS para a mesma finalidade. Instruções de exemplo:

    -- The return value is [a, b]. 
    select map_keys(from_json('{"a":1,"b":2}','map<string,string>'));

Funções relacionadas

FROM_JSON é uma função de tipo complexo ou uma função de string.

  • Para obter mais informações sobre as funções que processam dados de tipos complexos, como ARRAY, MAP, STRUCT e JSON, consulte Complex type functions.

  • Para obter mais informações sobre as funções de pesquisa e conversão de strings, consulte String functions.