JSON to CSV and CSV to JSON Converter Library in PHP
![Software License][ico-license]
![Total Downloads][ico-downloads], (*1)
The most basic CSV to JSON and JSON to CSV converter library in PHP without any dependencies., (*2)
Install
Via Composer, (*3)
``` bash
$ composer require ozdemirburak/json-csv, (*4)
## Usage
### JSON to CSV Converter
``` php
use OzdemirBurak\JsonCsv\File\Json;
// JSON to CSV
$json = new Json(__DIR__ . '/above.json');
// To convert JSON to CSV string
$csvString = $json->convert();
// To set a conversion option then convert JSON to CSV and save
$json->setConversionKey('utf8_encoding', true);
$json->convertAndSave(__DIR__ . '/above.csv');
// To convert JSON to CSV and force download on browser
$json->convertAndDownload();
You can also convert directly from a JSON string using the fromString method., (*5)
``` php
$csvString = (new Json())->fromString('{"name": "Buddha", "age": 80}')->convert();, (*6)
Assume that the input JSON is something like below.
```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]
}
]
After the conversion, the resulting CSV data will look like below., (*7)
| name_common |
name_official |
name_native |
area |
latlng_0 |
latlng_1 |
| Turkey |
Republic of Turkey |
Türkiye |
783562 |
39 |
35 |
| Israel |
State of Israel |
ישראל |
20770 |
31.3 |
34.45 |
CSV to JSON Converter
``` php
use OzdemirBurak\JsonCsv\File\Csv;, (*8)
// 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();, (*9)
You can also convert directly from a CSV string using the `fromString` method.
``` php
$jsonString = (new Csv())->fromString('[{"name":"Buddha","age":"80"}]')->convert();
Assume that the input CSV file is something like below., (*10)
| SepalLength |
SepalWidth |
PetalLength |
PetalWidth |
Name |
| 5.1 |
3.5 |
1.4 |
0.2 |
Iris-setosa |
| 7.0 |
3.2 |
4.7 |
1.4 |
Iris-versicolor |
| 6.3 |
3.3 |
6.0 |
2.5 |
Iris-virginica |
After the conversion, the resulting JSON data will look like below., (*11)
[
{
"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"
}
]
Change log
Please see CHANGELOG for more information what has changed recently., (*12)
Testing
bash
$ composer test, (*13)
Known Issues
Currently, there are not any issues that are known., (*14)
Contributing
Please see CONTRIBUTING for details., (*15)
Credits
License
The MIT License (MIT). Please see License File for more information., (*16)