The most basic CSV to JSON and JSON to CSV converter library in PHP without any dependencies.
Via Composer
$ composer require ozdemirburak/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 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.
$csvString = (new Json())->fromString('{"name": "Buddha", "age": 80}')->convert();
Assume that the input JSON is something like below.
[
{
"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.
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 |
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();
You can also convert directly from a CSV string using the fromString
method.
$jsonString = (new Csv())->fromString('[{"name":"Buddha","age":"80"}]')->convert();
Assume that the input CSV file is something like below.
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.
[
{
"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"
}
]
Please see CHANGELOG for more information what has changed recently.
$ composer test
Currently, there are not any issues that are known.
Please see CONTRIBUTING for details.
The MIT License (MIT). Please see License File for more information.