p1ratrulezzz/json-collection-parser
Composer 安装命令:
composer require p1ratrulezzz/json-collection-parser
包简介
Streaming parser for large JSON files containing array of objects
关键字:
README 文档
README
Event-based parser for large JSON collections (consumes small amount of memory). Built on top of JSON Streaming Parser
This package is compliant with PSR-4, PSR-1, and PSR-2. If you notice compliance oversights, please send a patch via pull request.
Installation
You will need Composer to install the package
composer require p1ratrulezzz/json-collection-parser ~1.5
Input data format
Collection must be an array of objects.
[ { "id": 78, "title": "Title", "dealType": "sale", "propertyType": "townhouse", "properties": { "bedroomsCount": 6, "parking": "yes" }, "photos": [ "1.jpg", "2.jpg" ] }, { "id": 729, "dealType": "rent_long", "propertyType": "villa" }, { "id": 5165, "dealType": "rent_short", "propertyType": "villa" } ]
Usage
Function as callback:
function processItem(array $item) { is_array($item); //true print_r($item); } $parser = new \JsonCollectionParser\Parser(); $parser->parse('/path/to/file.json', 'processItem');
Closure as callback:
$items = []; $parser = new \JsonCollectionParser\Parser(); $parser->parse('/path/to/file.json', function (array $item) use (&$items) { $items[] = $item; });
Static method as callback:
class ItemProcessor { public static function process(array $item) { is_array($item); //true print_r($item); } } $parser = new \JsonCollectionParser\Parser(); $parser->parse('/path/to/file.json', ['ItemProcessor', 'process']);
Instance method as callback:
class ItemProcessor { public function process(array $item) { is_array($item); //true print_r($item); } } $parser = new \JsonCollectionParser\Parser(); $processor = new \ItemProcessor(); $parser->parse('/path/to/file.json', [$processor, 'process']);
Receive items as objects:
function processItem(\stdClass $item) { is_array($item); //false is_object($item); //true print_r($item); } $parser = new \JsonCollectionParser\Parser(); $parser->parseAsObjects('/path/to/file.json', 'processItem');
Pass stream as parser input:
$stream = fopen('/path/to/file.json', 'r'); $parser = new \JsonCollectionParser\Parser(); $parser->parseAsObjects($stream, 'processItem');
Supported file formats
.json- raw JSON format.gz- GZIP-compressed file (you will needzlibPHP extension installed)
Running tests
composer test
License
This library is released under MIT license.
p1ratrulezzz/json-collection-parser 适用场景与选型建议
p1ratrulezzz/json-collection-parser 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 2.95k 次下载、GitHub Stars 达 0, 最近一次更新时间为 2019 年 03 月 08 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「json」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 p1ratrulezzz/json-collection-parser 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 p1ratrulezzz/json-collection-parser 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 p1ratrulezzz/json-collection-parser 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Kinikit - PHP Application development framework MVC component
ext-json wrapper with sane defaults
A package to cast json fields, each sub-keys is castable
swagger-php - Generate interactive documentation for your RESTful API using phpdoc annotations
Get wordpress nav menus and share the main site menus with the child sites.
JPOPHP (JSON Parser Object PHP) is a library for parsing the data in JSON format.
统计信息
- 总下载量: 2.95k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 3
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2019-03-08