Tous les produits
Search
Centre de documentation

Realtime Compute for Apache Flink:JSON_VALUE

Dernière mise à jour :Aug 09, 2026

Extrait la valeur située à un chemin d'accès spécifié dans une chaîne JSON et la renvoie sous forme de chaîne VARCHAR. Si le chemin correspond à un tableau ou à un objet, la structure correspondante est sérialisée en une chaîne VARCHAR au lieu d'être renvoyée sous son type natif.

Limitations

La fonction JSON_VALUE est prise en charge uniquement dans Realtime Compute for Apache Flink utilisant Ververica Runtime (VVR) 3.0.0 ou une version ultérieure.

Syntaxe

VARCHAR JSON_VALUE(VARCHAR content, VARCHAR path)

Paramètres

Paramètre Type de données Description
content VARCHAR La chaîne JSON à analyser. Le type du paramètre doit être VARCHAR. Si ce n'est pas le cas, utilisez la fonction CAST pour convertir la valeur au préalable ; transmettre directement une valeur qui n'est pas de type VARCHAR peut entraîner des erreurs d'analyse et des résultats NULL inattendus.
path VARCHAR L'expression de chemin qui identifie la valeur à extraire. Placez le chemin entre guillemets simples ('). Exemple : JSON_VALUE(json,'$.passenger_name') AS ABC

Le paramètre path prend en charge les symboles suivants :

Symbole Signification
$ Objet racine
[] Indice de tableau
* Caractère générique de tableau
. Élément enfant

Remarques d'utilisation

  • Si le paramètre content contient du code JSON non valide, ou si l'un des paramètres est défini sur NULL, la fonction renvoie NULL.

  • Si le chemin correspond à un tableau ou à un objet, le résultat est une représentation sous forme de chaîne VARCHAR de cette structure (par exemple, [30,40]), et non un tableau ou un objet natif.

Exemples

Les exemples suivants utilisent une seule instruction SELECT sur la table T1 pour illustrer l'impact de différentes combinaisons de valeurs pour les paramètres content et path sur le résultat.

Table T1 :

id (INT) json (VARCHAR) path1 (VARCHAR)
1 [10, 20, [30, 40]] $[2][*]
2 {"aaa":"bbb","ccc":{"ddd":"eee","fff":"ggg","hhh":["h0","h1","h2"]},"iii":"jjj"} $.ccc.hhh[*]
3 {"aaa":"bbb","ccc":{"ddd":"eee","fff":"ggg","hhh":["h0","h1","h2"]},"iii":"jjj"} $.ccc.hhh[1]
4 [10, 20, [30, 40]] NULL
5 NULL $[2][*]
6 "{xx]" "$[2][*]"

Instruction de test :

SELECT
    id,
    JSON_VALUE(json, path1) AS `value`
FROM
    T1;

Résultats :

id (INT) value (VARCHAR) Notes
1 [30,40] Tableau situé à l'emplacement $[2] — tous les éléments sélectionnés via *, sérialisés en VARCHAR
2 ["h0","h1","h2"] Tableau imbriqué situé à l'emplacement $.ccc.hhh — tous les éléments sélectionnés via *, sérialisés en VARCHAR
3 h1 Élément unique à l'indice 1 du tableau hhh
4 NULL La valeur de path1 est NULL
5 NULL La valeur de json est NULL
6 NULL La valeur de json correspond à du code JSON non valide

Étapes suivantes