Я пытаюсь преобразовать json-файл в формат csv с использованием php-скрипта. Код выглядит следующим образом:Преобразование формата JSON в CSV с использованием PHP
if (empty($argv[1])) die("The json file name or URL is missed\n");
$jsonFilename = $argv[1];
$json = file_get_contents($jsonFilename);
$array = json_decode($json, true);
$f = fopen('output.csv', 'w');
$firstLineKeys = false;
foreach ($array as $line)
{
if (empty($firstLineKeys))
{
$firstLineKeys = array_keys($line);
fputcsv($f, $firstLineKeys);
$firstLineKeys = array_flip($firstLineKeys);
}
fputcsv($f, array_merge($firstLineKeys, $line));
}
Этот вид работ, но возвращает только внешние переменные файла JSON, и я получаю «Массив для преобразования строки» предупреждение
данные JSON выглядит следующим образом:
{"type":"NON_ATTRIBUTED","conversion":{,"value_1":"000000100355321","value_3":"XXXX","value_4":"12667","value_5":"6"},"stream_type":"COOKIE"}
{"type":"ATTRIBUTED","conversion":{,"value_1":"000000167865321","value_3":"YYYY","value_4":"12668","value_5":"0"},"stream_type":"COOKIE"}
{"type":"NON_ATTRIBUTED","conversion":{,"value_1":"000000134535321","value_3":"AAAA","value_4":"12669","value_5":"9"},"stream_type":"COOKIE"}
{"type":"NON_ATTRIBUTED","conversion":{,"value_1":"000000100357651","value_3":"WWWW","value_4":"12670","value_5":"2"},"stream_type":"COOKIE"}
выхода я получаю: типа, преобразование, stream_type NON_ATTRIBUT ED, Массив, COOKIE NON_ATTRIBUTED, массив, COOKIE
Выход Я ожидаю это: тип, преобразование, значение_1 VALUE_3, value_4, value_5, stream_type NON_ATTRIBUTED, 000000100355321, XXXX, 1267, 6, COOKIE . .
Любая помощь приветствуется, так как это очень ново для меня
Это идеальный вариант! Большое спасибо :) – user2647092
@Applejack Для 'if (empty ($ firstLineKeys))' '' firstLineKeys' должен быть истинным и, следовательно, пустым для операторов в цикле 'if' для запуска? – pHorseSpec
@pHorseSpec. Эти строки не были связаны с самой проблемой, поэтому я ее не изменил. Если вам нужно преобразовать некоторые JSON в CSV, вы должны решить структуру своего CSV-файла, прежде всего потому, что JSON и CSV - это разные структуры данных: JSON - это дерево, а CSV - таблица. Тема начала строить свою собственную структуру, но он ошибся в своем коде и в файле JSON, поэтому все, что я сделал, просто исправлено. –