lnear/json

PHP轻量级JSON包装器

0.0.2 2024-06-03 22:07 UTC

This package is auto-updated.

Last update: 2024-09-07 07:20:28 UTC


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报告,而不是使用问题跟踪器。

致谢