JSON

Web技术研究所

字号+ 作者:H5之家 来源:H5之家 2015-09-25 11:18 我要评论( )

使用HTTP的PATCH方法可以通过一个结构化的数据来编辑服务器上的资源。如果要编辑数据是JSON的话,在规范中又有另一套标准来定义这个PATCH方法对JSON的编辑语法[R

JSON Patch   使用HTTP的PATCH方法可以通过一个结构化的数据来编辑服务器上的资源。如果要编辑数据是JSON的话,在规范中又有另一套标准来定义这个PATCH方法对JSON的编辑语法[RFC6902]。虽然服务器程序一般没有原生支持,不过照着这个规范实现一个也不难。
  其实我不喜欢这套规范,也懒得自己去实现,所以直接网络上找了个现成的库 JsonPatch.inc,这里使用Apache+PHP实现。首先,要配置.htaccess,把json文件交给程序处理。
RewriteCond %{REQUEST_METHOD} ^PATCH$
RewriteRule ^(.*\.json)$ /json-patch.php?path=$1   然后是 json-patch.php 的内容
require 'JsonPatch.inc';

$path=$_GET['path'];
file_exists($path) or header('HTTP/1.1 404 Not Found') or die;
$doc=json_decode(file_get_contents($path),true);
if(is_null($doc))header('HTTP/1.1 403 Forbidden') or die;
$patches=json_decode(file_get_contents('php://input'),true);
if(is_null($patches))
  header('HTTP/1.1 415 Unsupported Media Type') or die;
$result=JsonPatch::patch($doc,$patches);
file_put_contents($path,json_encode($result));   再创建一个初始的JSON文件 test.json
[]   然后开始测试,在控制台中执行一个PATCH请求,给这个JSON数组添加一个元素


  刷新后可以看到JSON文件的相应位置已经被写入数据了


  当然,这只是个最简单的演示,安全性问题还有一大堆需要处理。而且我不喜欢这套规范,所以不想深究。不过PATCH确实是好东西,也许和NoSQL一起用会更合适。

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • php CI 实战教程:[5]用curl获取json并解析

    php CI 实战教程:[5]用curl获取json并解析

    2016-02-26 17:00

  •  JSON入门级学习总结-JSON数据结构

    JSON入门级学习总结-JSON数据结构

    2016-02-25 11:05

  • Android解析Json速度最快的库:json

    Android解析Json速度最快的库:json

    2016-02-13 18:00

  • JavaScript转换与解析JSON方法实例详解第1/2页

    JavaScript转换与解析JSON方法实例详解第1/2页

    2016-02-10 21:25

网友点评
0