Aller au contenu principal
Page traduite

Cette page a été traduite de l'anglais avec l'aide de l'IA. En cas de divergence, la version anglaise fait référence.

JSON_EQUAL

Compare deux chaînes de caractères JSON et renvoie true si elles sont équivalentes, false sinon.

Voir aussi :
[SELECT] [DESCRIBE] [JSON_EXTRACT] [JSON_ARRAY_LENGTH] [ Types de données ]


astuce

La fonction json_equal est une fonction d'extension personnalisée de StackQL. Elle permet de comparer des objets et des tableaux JSON, en considérant comme équivalents, conformément à la spécification JSON, des objets dont les clés sont dans un ordre différent. La fonction json_equal est disponible dans les versions 0.5.707 et ultérieures de StackQL et n'est prise en charge qu'avec le backend SQL par défaut de StackQL, embarqué et en mémoire.

Syntaxe​

SELECT JSON_EQUAL(json1, json2);

Arguments​

json1
Une chaîne JSON représentant un objet ou un tableau.

json2
Une autre chaîne JSON à comparer à la première.

Les deux arguments doivent être des chaînes JSON valides.

Valeur(s) renvoyée(s)​

Une valeur entière : 1 si les chaînes JSON sont équivalentes, 0 sinon.


Exemples​

Comparer des objets JSON​

SELECT
public_access_block_configuration as current_state,
'{"BlockPublicAcls": true, "BlockPublicPolicy": true, "IgnorePublicAcls": true, "RestrictPublicBuckets": true}' as desired_state,
JSON_EQUAL(public_access_block_configuration, '{"BlockPublicAcls": true, "BlockPublicPolicy": true, "IgnorePublicAcls": true, "RestrictPublicBuckets": true}') as comp
FROM awscc.s3.buckets
WHERE region = 'ap-southeast-2'
AND Identifier = 'my-bucket';
/* returns...
|--------------------------------------------------------------------------------------------------------|--------------------------------|------|
| current_state | desired_state | comp |
|--------------------------------------------------------------------------------------------------------|--------------------------------|------|
| {"RestrictPublicBuckets":true,"BlockPublicPolicy":true,"BlockPublicAcls":true,"IgnorePublicAcls":true} | {"BlockPublicAcls": true, | 1 |
| | "BlockPublicPolicy": true, | |
| | "IgnorePublicAcls": true, | |
| | "RestrictPublicBuckets": true} | |
|--------------------------------------------------------------------------------------------------------|--------------------------------|------|
*/

Comparer des tableaux JSON​

SELECT
json_equal('[1, 2, 3]', '[1, 2, 3]') as array_comp_1,
json_equal('[1, 2, 3]', '[3, 2, 1]') as array_comp_2
;
/* returns...
|--------------|--------------|
| array_comp_1 | array_comp_2 |
|--------------|--------------|
| 1 | 0 |
|--------------|--------------|
*/

Pour plus d'informations, consultez json_equal.