mehr-it / easy-json
为大文件提供简单的 JSON 处理(读取/写入)
1.0.3
2021-11-24 12:33 UTC
Requires
- php: >=7.3.0
- ext-json: *
- mehr-it/php-decimals: ^2.0
Requires (Dev)
- phpunit/phpunit: ^8.5
README
解析 JSON 文件
以下是一个解析大 JSON 文件的简单示例
(new JsonParser($fh))
->eachItem('Library.Books', function($parser, $index) {
// this callback will be invoked for each book
$parser
->value('Author', $author)
->value('ISBN', $isbn)
->consume();
// do s.th. with author and ISBN data
})
->parse();
以下示例展示了如何收集值
(new JsonParser($fh))
->collectItemValues('Library.Books.ISBN', $isbns)
->parase();
// $isbns now holds the ISBNs of all books
待办事项:添加更多示例和详细信息
写入 JSON 文件
以下是一个写入 JSON 文件的简单示例
$builder = new JsonBuilder($fh);
$builder->write([
'version' => '1.0',
'users' => new JsonArray(function(JsonBuilder $builder) {
foreach(getUsers() as $currUser) {
yield ['name' => $currUser->name];
}
}),
]);
要强制使用特定的 JSON 数据类型,可以使用以下类
JsonArray
JsonObject
JsonNumber
资源
您可以不将所有流数据读入内存,直接将资源作为 JSON 字符串写入
$builder->write(new JsonResourceString($fh))
您可以选择将数据编码为 JSON
$builder->write(new JsonResourceString($fh, true))