4.6. test
4.6. test
"test" 操作用于测试目标位置处的值是否等于指定值.
操作对象 MUST 包含一个 "value" 成员, 该成员承载要与目标位置处的值进行比较的值.
目标位置处的值 MUST 等于 "value" 的值, 该操作才被视为成功.
这里, "相等" 是指目标位置处的值和 "value" 所承载的值具有相同的 JSON 类型, 并且按照该类型的以下规则被视为相等:
-
strings: 如果包含相同数量的 Unicode 字符, 且其码点逐字节相等, 则视为相等.
-
numbers: 如果数值上相等, 则视为相等.
-
arrays: 如果包含相同数量的值, 且按照本列表中的类型特定规则, 每个值都可视为等于另一个数组中对应位置处的值, 则视为相等.
-
objects: 如果包含相同数量的成员, 且通过比较键 (作为字符串) 和值 (使用本列表中的类型特定规则), 每个成员都可视为等于另一个对象中的某个成员, 则视为相等.
-
literals (false, true, and null): 如果二者相同, 则视为相等.
注意, 所执行的比较是逻辑比较; 例如, 数组成员值之间的空白并不重要.
另请注意, 对象成员序列化时的顺序并不重要.
例如:
{ "op": "test", "path": "/a/b/c", "value": "foo" }