get-zen / json-patch-php
生成和应用json-patch对象。由mikemccabe/json-patch-php (https://github.com/mikemccabe/json-patch-php)分支而来。
Requires
- php: >=5.3
- ext-json: *
Replaces
This package is auto-updated.
Last update: 2024-09-30 01:46:43 UTC
README
由mikemccabe/json-patch-php分支而来。
生成和应用json-patch对象。
实现了IETF JSON-patch (RFC 6902) 和 JSON-pointer (RFC 6901)
http://tools.ietf.org/html/rfc6902 http://tools.ietf.org/html/rfc6901
与Composer一起使用
composer require get-zen/json-patch-php
然后,在您的项目代码中,使用来自GetZen命名空间的JsonPatch
类定义,如下所示
use GetZen\JsonPatch;
入口点
- JsonPatch::get($doc, $pointer) - 从json文档中获取值
- JsonPatch::patch($doc, $patches) - 将补丁应用到$doc并返回结果
- JsonPatch::diff($src, $dst) - 返回将$src转换为$dst所需的补丁
参数是PHP数组,即json_decode($json_string, 1)的输出
(注意,您必须将1作为json_decode的第二个参数传递以获取数组。此库不支持stdClass对象。)
所有结构都直接作为PHP数组实现。如果一个数组包含至少一个非数字键,则认为它是'关联数组'(例如,类似于JSON '对象')。
因此,空数组([])和空对象({})比较相同,并且(例如)向空数组添加一个字符串键在此实现中可能成功,而在其他实现中可能失败。
$simplexml_mode提供了帮助,以便与从XML生成(类似simplexml风格)的数组一起工作 - 例如,重复的XML元素表示为数组。当$simplexml_mode启用时,具有标量值的叶子节点隐式地被视为长度为1的数组,因此此测试将成功
{ "comment": "basic simplexml array promotion",
"doc": { "foo":1 },
"patch": [ { "op":"add", "path":"/foo/1", "value":2 } ],
"expected": { "foo":[1, 2] } },
此外,当$simplexml_mode为true时,1长度数组在patch()返回时转换为标量。
测试(!!! 未维护)
一些测试在子模块中(https://github.com/json-patch/json-patch-tests)。执行'git submodule init'以拉取这些模块,然后执行'php runtests.php'以运行它们。