romtokarev/json-csv

PHP中的JSON到CSV和CSV到JSON转换器。

dev-master 2022-07-28 09:06 UTC

This package is auto-updated.

Last update: 2024-09-28 13:47:21 UTC


README

Latest Version on Packagist Software License Build Status Total Downloads

PHP中最基础的CSV到JSON和JSON到CSV转换库,无任何依赖。

安装

通过Composer

$ composer require romtokarev/json-csv

用法

从字符串转换JSON到CSV

use OzdemirBurak\JsonCsv\File\Json;

// demo json data
$testJson = json_encode([
    [
        '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]

    ]
]);

// JSON to CSV
$json = (new Json())->convertfromString($testJson);
// 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();

转换后,生成的CSV数据将如下所示。

从文件转换JSON到CSV

use OzdemirBurak\JsonCsv\File\Json;

// JSON to CSV
$json = (new Json)->convertfromFile(__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();

假设输入的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数据将如下所示。

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文件如下所示。

转换后,生成的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)。有关更多信息,请参阅许可证文件