Resumo : neste tutorial, você aprenderá como usar a JSON_TABLE()
função MySQL para converter dados JSON em dados tabulares.
Introdução à função JSON_TABLE() do MySQL
A JSON_TABLE()
função permite extrair dados de documentos JSON e convertê-los em dados tabulares.
O seguinte mostra a sintaxe da JSON_TABLE
função ():
JSON_TABLE(json_doc, path COLUMNS (column_list) [AS] alias);
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Nesta sintaxe:
json_doc
: este é o documento JSON do qual você deseja extrair dados.path
: a expressão do caminho JSON que especifica o local dos dados nojson_doc
documento a serem extraídos.COLUMNS(column_list)
: aCOLUMNS
cláusula especifica uma lista de colunas da tabela resultante.AS alias
: o alias da tabela é obrigatório, mas aAS
palavra-chave é opcional.
Exemplo de função MySQL JSON_TABLE
Suponha que você tenha o seguinte documento JSON:
{ "name" : "John",
"age" : 22}
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
O documento JSON é um objeto que possui duas chaves name
e age
. Para converter o documento JSON em dados tabulares, você pode usar a JSON_TABLE()
função.
Primeiro, passe o documento JSON para o primeiro argumento da função:
JSON_TABLE('{"name":"John","age":22}',...)
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Segundo, especifique o caminho para o qual deseja extrair os dados. Como vamos converter o documento inteiro, podemos usar a '$'
expressão path:
JSON_TABLE('{"name":"John","age":22}', '$' )
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Terceiro, especifique uma lista de colunas para a tabela resultante:
JSON_TABLE(
'{"name":"John","age":22}',
'$' COLUMNS(...)
)
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Suponha que a tabela resultante tenha duas colunas name
e age
que terá o valor das propriedades name
e age
do objeto JSON.
Para fazer isso, você lista as colunas da COLUMNS
cláusula. Para cada coluna, você especifica o nome da coluna, o tipo de dados e a expressão do caminho JSON que deseja extrair dados do documento JSON e preenchê-los na coluna:
JSON_TABLE(
'{"name":"John","age":22}',
'$' COLUMNS(
name VARCHAR(255) PATH '$.name',
age INT PATH '$.age'
)
)
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Quarto, especifique um alias de tabela:
JSON_TABLE(
'{"name":"John","age":22}',
'$' COLUMNS(
name VARCHAR(255) PATH '$.name',
age INT PATH '$.age'
)
) person;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Finalmente, selecione todas as colunas do conjunto de resultados da JSON_TABLE()
função:
SELECT
*
FROM
JSON_TABLE(
'{"name":"John","age":22}',
'$' COLUMNS(
name VARCHAR(255) PATH '$.name',
age INT PATH '$.age'
)
) as person;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Saída:
+------+------+
| name | age |
+------+------+
| John | 22 |
+------+------+
1 row in set (0.00 sec)
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Resumo
- Use a
JSON_TABLE
função para converter documentos JSON em dados tabulares.