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 ]
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.