JSON Patch 是啥玩意儿?不知道,直接翻译吧,就叫它“Json 补丁”吧。干吗用的呢?当然是用来修改 JSON 文档的了。那咋修改呢?比较常见有四大操作:AMRR。
咋解释呢?
A—— Add;
M—— Move;
R—— Replace;
R—— Remove。
Add 就是向 JSON 对象中添加一对 key - value,或者向 Json Array 中加个元素。
Move 就是把某个节点从一个地方移到另一个地方。
Replace 就是替换,比如把 city 的值从“广州”改为“珠海”。
Remove 就是删除 JSON 对象中的某对 key - value,或者从 Json Array 中删除一个元素。
除了上述四大美女外,还有 copy,就是把某个节点复制到另一个地方;test 这个嘛,在修改 JSON 文档之前验证某个值,如果值正确了就进行更新,如果值不对就“呵呵“,比如,可以 test 一下 age 属性是否为 25,如果是就更新 SON 文档,如果不是就算了吧。
这个 JSON Patch 也不是很复杂,你可以参考主页上的说明,主页地址:
这个 JSON Patch 有什么用呢?有用得很!尤其是现在很多数据都是通过网络来传输的,而且许多数据也喜欢用 JSON 格式(貌似是比 XML 简单一些)。如果 JSON 文档比较长,客户端获取了数据后,然后可能会对数据进行更新,然后更新时又把整个 JSON 文档提交回服务器。虽然这一来一回,所产生的流量远不如你打《王者农药》所产生的流量,但是,如果传输频繁,这个流量消耗也是不小的,毕竟各大运营商是增不降费的。按照现在各种破 App 内含数不胜数的虚假广告和一些无用的图片信息,刷几条微博就刷掉 5-6 M 的流量了。
所以说,尽量减少传输量是很有必要的。JSON Patch 不必把整个 JSON 文档都提交回服务器,而仅告诉服务器你要更新哪个地方就好了。比如
[ { "op" : "add", "path" : "/age", "value" : "150" }, { "op" : "replace", "path" : "/name", "value" : "老鬼" } ]