Extrae el valor en una ruta específica de una cadena JSON y lo devuelve como una cadena VARCHAR. Si la ruta coincide con un arreglo u objeto, la estructura coincidente se serializa en una cadena VARCHAR en lugar de devolverse como un tipo nativo.
Limitaciones
JSON_VALUE solo es compatible con Realtime Compute for Apache Flink que utiliza Ververica Runtime (VVR) 3.0.0 o versiones posteriores.
Sintaxis
VARCHAR JSON_VALUE(VARCHAR content, VARCHAR path)
Parámetros
|
Parámetro |
Tipo de dato |
Descripción |
|
|
VARCHAR |
La cadena JSON que se va a analizar sintácticamente. El tipo del parámetro debe ser |
|
|
VARCHAR |
La expresión de ruta que identifica el valor a extraer. Encierre la ruta entre comillas simples ( |
El parámetro path admite los siguientes símbolos:
|
Símbolo |
Significado |
|
|
Objeto raíz |
|
|
Subíndice de arreglo |
|
|
Comodín de arreglo |
|
|
Elemento secundario |
Notas de uso
Si
contentcontiene JSON no válido, o si alguno de los parámetros esNULL, se devuelveNULL.Si la ruta coincide con un arreglo u objeto, el resultado es una representación en cadena
VARCHARde dicha estructura (por ejemplo,[30,40]), no un arreglo u objeto nativo.
Ejemplos
A continuación se presentan ejemplos que utilizan una única instrucción SELECT sobre la tabla T1 para mostrar cómo afectan al resultado las distintas combinaciones de content y path.
Tabla T1:
|
id (INT) |
json (VARCHAR) |
path1 (VARCHAR) |
|
1 |
|
|
|
2 |
|
|
|
3 |
|
|
|
4 |
|
NULL |
|
5 |
NULL |
|
|
6 |
|
|
Instrucción de prueba:
SELECT
id,
JSON_VALUE(json, path1) AS `value`
FROM
T1;
Resultados:
|
id (INT) |
value (VARCHAR) |
Notas |
|
1 |
|
Arreglo en |
|
2 |
|
Arreglo anidado en |
|
3 |
|
Elemento único en el índice |
|
4 |
NULL |
|
|
5 |
NULL |
|
|
6 |
NULL |
|