Passa al contenuto principale

4.6. test (test)

4.6. test (test)

L'operazione "test" verifica che un valore nella posizione di destinazione sia uguale a un valore specificato.

L'oggetto operazione DEVE (MUST) contenere un membro "value" che trasmette il valore da confrontare con il valore della posizione di destinazione.

La posizione di destinazione DEVE (MUST) essere uguale al valore "value" affinché l'operazione sia considerata riuscita.

Qui, "uguale" (equal) significa che il valore nella posizione di destinazione e il valore trasmesso da "value" sono dello stesso tipo JSON, e che sono considerati uguali secondo le seguenti regole per quel tipo:

  • strings (stringhe): sono considerate uguali se contengono lo stesso numero di caratteri Unicode e i loro punti di codice sono uguali byte per byte.

  • numbers (numeri): sono considerati uguali se i loro valori sono numericamente uguali.

  • arrays (array): sono considerati uguali se contengono lo stesso numero di valori, e se ogni valore può essere considerato uguale al valore nella posizione corrispondente nell'altro array, utilizzando questo elenco di regole specifiche per tipo.

  • objects (oggetti): sono considerati uguali se contengono lo stesso numero di membri, e se ogni membro può essere considerato uguale a un membro nell'altro oggetto, confrontando le loro chiavi (come stringhe) e i loro valori (utilizzando questo elenco di regole specifiche per tipo).

  • literals (letterali) (false, true, e null): sono considerati uguali se sono identici.

Si noti che il confronto eseguito è un confronto logico; ad esempio, lo spazio bianco tra i valori dei membri di un array non è significativo. Si noti inoltre che l'ordine della serializzazione dei membri dell'oggetto non è significativo.

Ad esempio:

{ "op": "test", "path": "/a/b/c", "value": "foo" }