usls / json-csv
PHP 中 JSON 转 CSV 和 CSV 转 JSON 的转换器。
dev-master
2019-08-20 19:33 UTC
Requires
- php: ~7.1
- ext-json: *
- ext-mbstring: *
Requires (Dev)
- phpunit/phpunit: ~6.0|~7.0
This package is not auto-updated.
Last update: 2024-09-27 01:08:00 UTC
README
PHP 中最基础的 CSV 转 JSON 和 JSON 转 CSV 的库,无需任何依赖。
安装
通过 Composer
$ composer require ozdemirburak/json-csv
用法
JSON 转 CSV 转换器
use OzdemirBurak\JsonCsv\File\Json;
// JSON to CSV
$json = new Json(__DIR__ . '/above.json');
// To convert JSON to CSV string
$csvString = $json->convert();
// To convert JSON to CSV and save
$json->convertAndSave(__DIR__ . '/above.csv');
// To convert JSON to CSV and force download on browser
$json->convertAndDownload();
假设输入 JSON 如下。
[
{
"name": {
"common": "Turkey",
"official": "Republic of Turkey",
"native": "T\u00fcrkiye"
},
"area": 783562,
"latlng": [39, 35]
},
{
"name": {
"common": "Israel",
"official": "State of Israel",
"native": "\u05d9\u05e9\u05e8\u05d0\u05dc"
},
"area": 20770,
"latlng": [31.30, 34.45]
}
]
转换后,生成的 CSV 数据将如下。
name_common | name_official | name_native | area | latlng_0 | latlng_1 |
---|---|---|---|---|---|
土耳其 | 土耳其共和国 | Türkiye | 783562 | 39 | 35 |
以色列 | 以色列国 | ישראל | 20770 | 31.3 | 34.45 |
CSV 转 JSON 转换器
use OzdemirBurak\JsonCsv\File\Csv;
// CSV to JSON
$csv = new Csv(__DIR__ . '/below.csv');
$csv->setConversionKey('options', JSON_PRETTY_PRINT|JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES);
// To convert CSV to JSON string
$jsonString = $csv->convert();
// To convert CSV to JSON and save
$csv->convertAndSave(__DIR__ . '/below.json');
// To convert CSV to JSON and force download on browser
$csv->convertAndDownload();
假设输入 CSV 文件如下。
花瓣长度 | 花瓣宽度 | 花瓣长度 | 花瓣宽度 | 名称 |
---|---|---|---|---|
5.1 | 3.5 | 1.4 | 0.2 | setosa 爱丽丝 |
7.0 | 3.2 | 4.7 | 1.4 | versicolor 爱丽丝 |
6.3 | 3.3 | 6.0 | 2.5 | virginica 爱丽丝 |
转换后,生成的 JSON 数据将如下。
[
{
"SepalLength": "5.1",
"SepalWidth": "3.5",
"PetalLength": "1.4",
"PetalWidth": "0.2",
"Name": "Iris-setosa"
},
{
"SepalLength": "7.0",
"SepalWidth": "3.2",
"PetalLength": "4.7",
"PetalWidth": "1.4",
"Name": "Iris-versicolor"
},
{
"SepalLength": "6.3",
"SepalWidth": "3.3",
"PetalLength": "6.0",
"PetalWidth": "2.5",
"Name": "Iris-virginica"
}
]
变更日志
请参阅 CHANGELOG 了解最近的变化。
测试
$ composer test
已知问题
目前没有任何已知问题。
贡献
请参阅 CONTRIBUTING 了解详细信息。
鸣谢
许可协议
MIT 许可协议 (MIT)。请参阅 许可文件 了解更多信息。