https://github.com/workbunny/pjson
✨ PJson 用于解析 JSON 数据并提供高效的内存管理优化。
https://github.com/workbunny/pjson
json php-ffi php8
Last synced: 12 months ago
JSON representation
✨ PJson 用于解析 JSON 数据并提供高效的内存管理优化。
- Host: GitHub
- URL: https://github.com/workbunny/pjson
- Owner: workbunny
- License: mit
- Created: 2025-04-15T10:00:00.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-04-26T10:01:59.000Z (about 1 year ago)
- Last Synced: 2025-04-27T07:47:03.695Z (12 months ago)
- Topics: json, php-ffi, php8
- Language: C
- Homepage:
- Size: 462 KB
- Stars: 3
- Watchers: 0
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# pjson
✨ PJson 用于解析 JSON 数据并提供高效的内存管理优化。
## 依赖
- PHP 8.1 或更高版本
- Composer 2.0 或更高版本
- PHP 扩展 `ffi` 已启用
- linux 系统
- windows 系统
- mac 系统(暂未开启)
## 安装
```bash
# 暂未开启
composer require workbunny/pjson
```
## 如何使用
[文档](doc/README.MD)
## 测试对比结果
> 以此json为例 `https://geo.datav.aliyun.com/areas_v3/bound/100000.json`
php原生
```php
// 原生解析
$php_json = json_decode($json_str, true);
// 拿其中一个字段
$type = $php_json['type'];
var_dump($type);
```
```
当前内存占用: 2.25MB
执行耗时: 0.0042 秒
```
pjson
```php
// pjson解析
$json = Json::parse_str($json_str);
$type = Json::getStr($json, 'type');
var_dump($type);
```
```
当前内存占用: 572.92KB
执行耗时: 0.0137 秒
```
## 编译json动态库
编译适合自己系统的动态库
`build` 文件夹
```bash
gcc parson.c -shared -o Json.so -O2 -Wall -Wextra -std=c89 -pedantic-errors -DTESTS_MAIN
```