4.6. test
4.6. test
L'opération "test" teste qu'une valeur à l'emplacement cible est égale à une valeur spécifiée.
L'objet d'opération DOIT contenir un membre "value" qui transmet la valeur à comparer à la valeur de l'emplacement cible.
L'emplacement cible DOIT être égal à la valeur "value" pour que l'opération soit considérée comme réussie.
Ici, "égal" signifie que la valeur à l'emplacement cible et la valeur transmise par "value" sont du même type JSON, et qu'elles sont considérées comme égales selon les règles suivantes pour ce type:
-
chaînes: sont considérées comme égales si elles contiennent le même nombre de caractères Unicode et que leurs points de code sont égaux octet par octet.
-
nombres: sont considérés comme égaux si leurs valeurs sont numériquement égales.
-
tableaux: sont considérés comme égaux s'ils contiennent le même nombre de valeurs, et si chaque valeur peut être considérée comme égale à la valeur à la position correspondante dans l'autre tableau, en utilisant cette liste de règles spécifiques au type.
-
objets: sont considérés comme égaux s'ils contiennent le même nombre de membres, et si chaque membre peut être considéré comme égal à un membre dans l'autre objet, en comparant leurs clés (en tant que chaînes) et leurs valeurs (en utilisant cette liste de règles spécifiques au type).
-
littéraux (false, true et null): sont considérés comme égaux s'ils sont identiques.
Notez que la comparaison effectuée est une comparaison logique; par exemple, l'espace blanc entre les valeurs des membres d'un tableau n'est pas significatif.
De plus, notez que l'ordre de la sérialisation des membres d'objet n'est pas significatif.
Par exemple:
{ "op": "test", "path": "/a/b/c", "value": "foo" }