插件窝 干货文章 php中json字符串如何转csv格式

php中json字符串如何转csv格式

文件 写入 字符串 JSON 870    来源:    2025-03-18

在PHP中,将JSON字符串转换为CSV格式可以通过以下步骤实现:

  1. 解码JSON字符串:首先,使用json_decode()函数将JSON字符串解码为PHP数组或对象。
  2. 处理数据:根据JSON数据的结构,提取出需要转换为CSV的数据。
  3. 生成CSV文件:使用fputcsv()函数将数据写入CSV文件。

以下是一个示例代码,展示如何将JSON字符串转换为CSV格式:

<?php
// 示例JSON字符串
$jsonString = '[
    {"name": "John", "age": 30, "city": "New York"},
    {"name": "Jane", "age": 25, "city": "Los Angeles"},
    {"name": "Mike", "age": 35, "city": "Chicago"}
]';

// 解码JSON字符串为PHP数组
$data = json_decode($jsonString, true);

// 打开一个文件句柄用于写入CSV
$csvFile = fopen('output.csv', 'w');

// 写入CSV文件的表头
fputcsv($csvFile, array_keys($data[0]));

// 写入数据行
foreach ($data as $row) {
    fputcsv($csvFile, $row);
}

// 关闭文件句柄
fclose($csvFile);

echo "CSV文件已生成:output.csv";
?>

代码说明:

  1. 解码JSON字符串json_decode($jsonString, true)将JSON字符串解码为关联数组。
  2. 打开CSV文件fopen('output.csv', 'w')以写入模式打开一个文件句柄。
  3. 写入表头fputcsv($csvFile, array_keys($data[0]))将数组的键作为CSV文件的表头写入。
  4. 写入数据行:使用foreach循环遍历数组,并将每一行数据写入CSV文件。
  5. 关闭文件句柄fclose($csvFile)关闭文件句柄,确保数据写入文件。

注意事项:

  • 如果JSON数据是嵌套的(例如包含多层数组或对象),可能需要进一步处理数据以展平结构。
  • 如果JSON数据量较大,可能需要考虑内存使用和性能优化。

示例输出:

生成的output.csv文件内容如下:

name,age,city
John,30,New York
Jane,25,Los Angeles
Mike,35,Chicago

通过这种方式,你可以轻松地将JSON字符串转换为CSV格式,并保存为文件。