承接 gamringer/php-json-pointer 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

gamringer/php-json-pointer

最新稳定版本:3.2

Composer 安装命令:

composer require gamringer/php-json-pointer

包简介

PHP JSON Pointer (RFC6901) implementation

README 文档

README

License Latest Stable Version Latest Unstable Version Total Downloads

SensioLabsInsight

Build Status

Build Status Code Coverage Scrutinizer Code Quality

A RFC6901 compliant JSON Pointer PHP implementation

#License JSONPointer is licensed under the MIT license.

#Installation

composer require gamringer/php-json-pointer 

##Tests

composer install phpunit 

#Documentation

##Testing a value for existence

<?php $target = [ "foo" => ["bar", "baz"], "qux" => "quux" ]; $pointer = new \gamringer\JSONPointer\Pointer($target); var_dump($pointer->has("/foo")); /* Results:  bool(true)  */

Retrieving a value that does not exist will return false

<?php $target = [ "qux" => "quux" ]; $pointer = new \gamringer\JSONPointer\Pointer($target); var_dump($pointer->has("/foo")); /* Results:  bool(false)  */

##Retrieving a value

<?php $target = [ "foo" => ["bar", "baz"], "qux" => "quux" ]; $pointer = new \gamringer\JSONPointer\Pointer($target); var_dump($pointer->get("/foo")); /* Results:  array(2) {  [0] =>  string(3) "bar"  [1] =>  string(3) "baz" }  */

Retrieving a value that does not exist will throw an exception

<?php $target = [ "qux" => "quux" ]; $pointer = new \gamringer\JSONPointer\Pointer($target); var_dump($pointer->get("/foo")); /* Results:  Throws gamringer\JSONPointer\Exception  */

##Inserting a value Inserting a value will returns a VoidValue object if used on an indexed array.

<?php $target = [ "foo" => ["bar", "baz"], "qux" => "quux" ]; $pointer = new \gamringer\JSONPointer\Pointer($target); $value = "waldo"; var_dump($pointer->insert("/foo/1", $value)); var_dump($pointer->get("/foo")); /* Results:  class gamringer\JSONPointer\VoidValue#6 (2) {  protected $owner =>  array(3) {  ...  }  protected $target =>  string(1) "1" } array(3) {  [0] =>  string(3) "bar"  [1] =>  string(5) "waldo"  [2] =>  string(3) "baz" }  */

If used on anything else, it will behave in the exact same way as get()

<?php $target = [ "foo" => ["bar", "baz"], "qux" => "quux" ]; $pointer = new \gamringer\JSONPointer\Pointer($target); $value = "waldo"; var_dump($pointer->insert("/foo", $value)); var_dump($pointer->get("/foo")); /* Results:  array(2) {  [0] =>  string(3) "bar"  [1] =>  string(3) "baz" } string(5) "waldo"  */

##Setting a value Setting a value returns the content previously at that path

<?php $target = [ "foo" => ["bar", "waldo", "baz"], "qux" => "quux" ]; $pointer = new \gamringer\JSONPointer\Pointer($target); $value = "corge"; var_dump($pointer->set("/foo", $value)); /* Results:  array(3) {  [0] =>  string(3) "bar"  [1] =>  string(5) "waldo"  [2] =>  string(3) "baz" }  */

If the path was attainable, but not set, it will return a VoidValue

<?php $target = [ "foo" => ["bar", "waldo", "baz"], "qux" => "quux" ]; $pointer = new \gamringer\JSONPointer\Pointer($target); $value = "garply"; var_dump($pointer->set("/grault", $value)); /* Results:  class gamringer\JSONPointer\VoidValue#6 (2) {  protected $owner =>  array(3) {  ...  }  protected $target =>  string(6) "grault" }  */

##Remove a value Removing a value returns the content previously at that path

<?php $target = [ "foo" => ["bar", "waldo", "baz"], "qux" => "quux" ]; $pointer = new \gamringer\JSONPointer\Pointer($target); var_dump($pointer->remove("/qux")); /* Results:  string(4) "quux"  */

Removing a value that does not exist will throw an exception

<?php $target = [ "foo" => ["bar", "waldo", "baz"], ]; $pointer = new \gamringer\JSONPointer\Pointer($target); var_dump($pointer->remove("/qux")); /* Results:  Throws gamringer\JSONPointer\Exception  */

##Operations affect the original object This affects Remove Operations

<?php $target = [ "foo" => ["bar", "waldo", "baz"], "qux" => "quux" ]; $pointer = new \gamringer\JSONPointer\Pointer($target); $pointer->remove("/qux"); var_dump($target); /* Results:  array(1) {  'foo' =>  array(3) {  [0] =>  string(3) "bar"  [1] =>  string(5) "waldo"  [2] =>  string(3) "baz"  } }  */

This also affects Add Operations

<?php $target = [ "foo" => ["bar", "waldo", "baz"], "qux" => "quux" ]; $value = "bar"; $pointer = new \gamringer\JSONPointer\Pointer($target); $pointer->set("/foo", $value); var_dump($target); /* Results:  array(2) {  'foo' =>  string(3) "bar"  'qux' =>  string(4) "quux" }  */

统计信息

  • 总下载量: 35.98k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 7
  • 点击次数: 3
  • 依赖项目数: 2
  • 推荐数: 0

GitHub 信息

  • Stars: 7
  • Watchers: 2
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-01-04

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固