Aller au contenu principal

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" }