lnear /json
PHP轻量级JSON包装器
0.0.2
2024-06-03 22:07 UTC
Requires
- php: ^8.1
Requires (Dev)
- pestphp/pest: ^3.0
- phpunit/phpunit: ^11.0
README
此包为PHP中处理JSON对象提供强大的抽象。它包括使用流畅API加载、保存和操作JSON数据的函数。
功能
- 加载和保存JSON数据。
- 使用数组语法访问和修改JSON数据。
- 将数据推入、预插入到JSON对象中,或合并数据。
- 过滤、映射、归约和排序JSON数据。
- 递增和递减数值。
- 将JSON对象转换为JSON字符串,反之亦然。
- 流畅API用于链式调用方法。
安装
您可以通过composer安装此包。
composer require lnear/json
用法
基本用法
use Lame\JSONFile; // Instantiate JSONFile with a file path $jsonFile = new JSONFile('/path/to/file.json'); // Access and manipulate JSON data $jsonFile->put('key', 'value'); $jsonFile->save(); // Save changes to the file // Load JSON data from the file $data = $jsonFile->load();
JSONString
JSONString
类处理存储为字符串的JSON数据。它还扩展了JSONObject
抽象类,并提供方法以字符串格式处理JSON数据。
用法
use Lame\JSONString; // Instantiate JSONString with a JSON string $jsonString = new JSONString('{"key": "value"}'); // Access and manipulate JSON data $jsonString->put('newKey', 'newValue'); $jsonString->save(); // Save changes to the JSON string // Load JSON data from the string $data = $jsonString->load();
异常处理
这两个类都处理与JSON解析和文件操作相关的异常。当发生错误时,它们会抛出适当的异常,允许您在应用程序中优雅地处理它们。
ArrayAccess和Countable
if ($jsonObject->has('name')) { echo $jsonObject['name']; // Outputs: John } $jsonObject['email'] = 'john.doe@example.com'; unset($jsonObject['age']); echo count($jsonObject); // Outputs the count of items in the JSON object
数据操作
$jsonObject->push('tags', 'developer'); $jsonObject->prepend('tags', 'programmer'); $jsonObject->increment('age', 2); $jsonObject->decrement('age', 1); $allData = $jsonObject->all(); $filteredData = $jsonObject->filter(fn($key, $value) => is_string($value));
高级方法
$keysStartingWithA = $jsonObject->startingWith('a'); $jsonObject->forget('location'); $jsonObject->flush(); $jsonObject->flushStartingWith('temp_'); $jsonObject->each(fn($key, $value) => print("Key: $key, Value: $value")); $mappedData = $jsonObject->map(fn($value) => strtoupper($value)); $reducedData = $jsonObject->reduce(fn($carry, $value) => $carry . $value, ''); $sortedData = $jsonObject->sort(fn($a, $b) => $a <=> $b); $reversedData = $jsonObject->reverse();
许可证
本项目采用MIT许可证 - 有关详细信息,请参阅LICENSE文件。
文档
有关详细文档,请访问JSONObject 文档。
贡献
我们欢迎贡献!在做出任何贡献之前,请阅读我们的贡献指南。
联系方式
如果您有任何问题或反馈,请随时通过hi@lnear.dev与我们联系。
安全性
如果您发现任何与安全性相关的问题,请通过电子邮件hi@lnear.dev报告,而不是使用问题跟踪器。