メインコンテンツまでスキップ

4.6. test

4.6. test

"test" 操作はターゲット位置の値が指定された値と等しいかどうかをテストします。

操作オブジェクトは, ターゲット位置の値と比較する値を伝える "value" メンバーを含まなければなりません。

操作が成功したと見なされるには, ターゲット位置が "value" 値と等しくなければなりません。

ここで "等しい" とは, ターゲット位置の値と "value" によって伝えられる値が同じ JSON 型であり, その型に対する以下の規則によって等しいと見なされることを意味します:

  • 文字列: 同じ数の Unicode 文字を含み, それらのコードポイントがバイト単位で等しい場合, 等しいと見なされます。

  • 数値: それらの値が数値的に等しい場合, 等しいと見なされます。

  • 配列: 同じ数の値を含み, この型固有の規則のリストを使用して, 各値が他の配列の対応する位置の値と等しいと見なされる場合, 等しいと見なされます。

  • オブジェクト: 同じ数のメンバーを含み, キー (文字列として) と値 (この型固有の規則のリストを使用) を比較することにより, 各メンバーが他のオブジェクトのメンバーと等しいと見なされる場合, 等しいと見なされます。

  • リテラル (false, true, および null): それらが同じ場合, 等しいと見なされます。

実行される比較は論理的な比較であることに注意してください; たとえば, 配列のメンバー値間の空白は重要ではありません。

また, オブジェクトメンバーのシリアル化の順序は重要ではないことに注意してください。

例えば:

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