Command Palette

Search for a command to run...

JSON to CSV: превратите ответ API в электронную таблицу, которую люди могут открыть

JSON to CSV: превратите ответ API в электронную таблицу, которую люди могут открыть

T
Toolz Team
|Aug 23, 2026|13 Мин. читать

Часть коллекции Инструменты для данных

Половина моей работы на любом продукте SaaS - это получение данных из системы в руки того, кто не пишет код. Основатель хочет, чтобы месяц и #39;s регистрировались в электронной таблице. руководитель службы поддержки хочет сортировать билеты в Excel. Бухгалтер хочет заказы как .csv они могут поворачиваться. данные живут как JSON, потому что именно это API возвращает, и каждый раз задача одна и та же: превратить этот массив объектов в столбцы и строки, которые может открыть человек. Мне надоело писать для него одноразовые сценарии, именно поэтому Toolz Преобразователь JSON в CSV существует. Это руководство - как я думаю об этом преобразовании, включая те части, которые сбивают людей с толку.

TL;DR: Преобразователь JSON в CSV берет массив объектов и записывает его в виде строк, разделенных запятыми, по одному столбцу на свойство, поэтому электронная таблица может открыть его. Жесткие части - это записи с разными полями, вложенными объектами и значениями, содержащими запятые. Хороший преобразователь создает заголовок из объединения всех ключей, может сплющивать вложенные объекты в столбцы с точечными обозначениями и выходить из полей на RFC 4180. Инструмент Toolz выполняет все три клиентских функции и позволяет выбрать разделитель и окончания строк CRLF, чтобы файл открывался чисто в Excel.

Я опираюсь на Ларавель и Реакт, поэтому JSON - мой родной формат, а CSV - лингва франка, в который я экспортирую. Интересная инженерия - это не счастливый путь, где каждый объект имеет одни и те же три ключа; это беспорядочная реальность производственных данных, и именно здесь большинство конвертеров незаметно делают неправильные вещи.

Что такое преобразователь JSON в CSV?

Конвертер JSON в CSV считывает массив объектов JSON и выдает таблицу: имена свойств становятся строкой заголовка, и каждый объект становится одной строкой данных под ней Вставить ответ из конечной точки API, запроса базы данных или экспортированного документа, и вы получаете файл, который вы можете открыть непосредственно в Excel, Google Sheets или Numbers.Это мост между обменом машинами формата и форматом, в котором люди действительно работают.

Идеальный вход - это массив плоских объектов, которые все имеют одни и те же ключи, потому что это идеально отображается на прямоугольной таблице. Реальные данные редко бывают такими аккуратными. Объекты пропускают поле, значения располагаются на два уровня глубже, а некоторые записи представляют собой массивы, а не скаляры. Все значение выделенного преобразователя заключается в том, что он имеет определенный, разумный ответ для каждого из этих случаев вместо того, чтобы выдавать ошибку или отбрасывать данные. Если ваш JSON минифицирован или вы просто хотите сначала проверить его, запустите его через Форматтер JSON чтобы красиво распечатать и проверить его перед конвертацией.

Как он обрабатывает объекты с разными полями?

Это первое, что ломает наивные преобразователи, и это стоит понять, потому что производство JSON почти никогда не имеет однородных объектов Предположим, что ваш массив имеет один объект с id, name, и email, а следующий с id, name, и phone. Какие столбцы должен иметь CSV?

Правильный ответ - объединение каждого ключа по всем объектам, сохранённое в порядке первого появления каждого ключа. таким образом, заголовок становится id, name, email, phone, и любой объект, отсутствующий один из этих ключей, просто получает пустую ячейку в этом столбце. Ничего не опускается, и таблица остается прямоугольной. ленивый преобразователь, который читает только ключи первого объекта, молча потеряет phone столбец целиком, взяв с собой каждый номер телефона. конвертер Toolz сканирует все строки, чтобы построить заголовок, поэтому неравномерные записи по-прежнему выстраиваются в чистую, полную таблицу. Это одно поведение - это разница между экспортом, которому вы можете доверять, и экспортом, который незаметно пропускает данные, которые никто не замечает, пока не становится слишком поздно.

А как насчет вложенных объектов и массивов?

JSON - дерево; CSV - это сетка. Сплющивание одного в другое - это второе место, когда преобразователи расходятся, и правильный выбор зависит от того, что вы планируете делать с файлом.

Для вложенных объектов у вас есть два разумных варианта, и инструмент поддерживает оба. при сплющивании вложенный объект расширяется в столбцы с точечными обозначениями, так что { "address": { "city": "Paris", "zip": "75001" } } становится ан address.city колонка и ан address.zip столбец. это то, что вы хотите, когда вложенные поля являются реальными данными, которые человек будет читать и сортировать. с выравниванием весь вложенный объект записывается как компактная строка JSON внутри одной ячейки, что лучше, когда структура непрозрачна и вам просто нужно сохранить ее дословно.

Массивы получают свой собственный выбор, потому что не существует единого правильного способа втиснуть список в одну ячейку. Вы можете хранить массив как JSON, сохраняя ["a","b"] неповрежденный, поэтому он идеально перемещается туда и обратно, или вы можете соединить элементы с сепаратором, чтобы получить более удобочитаемый a; b.Я использую JSON, когда файл будет возвращен программой, и формат соединения, когда человек является аудиторией и читаемость побеждает. В таблице ниже суммированы решения.

Форма ввода Сплющивать НА Сплющивать
{"user":{"name":"Ada"}} колонна user.name = Ada колонна user = {"name":"Ada"}
{"tags":["x","y"]} (массивы как JSON) колонна tags = ["x","y"] колонна tags = ["x","y"]
{"tags":["x","y"]} (соединены массивы) колонна tags = x; y колонна tags = x; y
объект не имеет ключа пустая ячейка в этом столбце пустая ячейка в этом столбце

Запятые и цитаты зачем спасаться?

Это правило, которое, игнорируемое, создает файл, который выглядит хорошо, пока кто-то не откроет его и столбцы все не так. CSV использует запятую для разделения полей, так что же происходит, когда значение содержит запятую? или двойную кавычку? или разрыв строки из многострочной заметки?

RFC 4180, самое близкое к стандарту CSV, отвечает на это точно: любое поле, содержащее разделитель, двойную кавычку или разрыв строки, должно быть обернуто двойными кавычками, и любая двойная кавычка внутри этого поля должна быть удвоена. Итак, значение Baker, Smith & Co. пишется как "Baker, Smith & Co.", и She said "hi" становиться "She said ""hi""". Конвертер Toolz автоматически применяет эти правила к каждой ячейке, поэтому адрес, цена с разделителем тысяч или комментарий в виде свободного текста сохраняют поездку в электронную таблицу как одно неповрежденное поле вместо того, чтобы разбиваться на дополнительные столбцы.

Как сделать файл открытым в Excel?

Вы могли бы подумать, что CSV - это CSV, но Excel в Windows суетливо относится к одной вещи, которая выводит людей из строя: окончания строк. Получение этого права - это разница между файлом, который открывается идеально, и файлом, в котором строки кажутся слитыми или разделенными.

Excel в Windows ожидает, что каждая строка закончится возвратом каретки плюс лента CRLF. Если вы передаете ей файл с окончаниями строк LF в стиле Unix, он может неправильно прочитать, где строки разбиваются, особенно когда поле с кавычками содержит собственную новую строку. конвертер позволяет вам выбрать LF или CRLF, поэтому выберите CRLF, когда аудитория Excel в Windows и LF для большинства других инструментов и для Google Sheets, что устраивает любой из них. Вы также можете выбрать разделитель: запятая является по умолчанию, но точка с запятой распространена в европейских локалях, где запятая является десятичным разделителем, а вкладка или трубка удобны, когда ваши данные сами по себе полны запятых. Сопоставление разделителя и строки, заканчивающейся с пунктом назначения, является пятисекундным выбором, который позже сохранит билет поддержки.

Безопасно ли конвертировать конфиденциальный JSON онлайн?

Да, потому что ни один из него не покидает ваш браузер.Каждая часть преобразования, от анализа JSON до выхода из каждого поля и присоединения к строкам, запускается в JavaScript на вашем собственном компьютере. нет загрузки и сервера, поэтому ничего не передается, не регистрируется и не сохраняется. Откройте вкладку сети и нажмите "Конвертировать": вы увидите, что запрос не погаснет, и как только страница загрузится, инструмент будет работать с отключенным Интернетом.

Это не незначительная деталь для JSON конкретно, потому что JSON является то, что API ответы и внутренние системы говорят Массив, который вы конвертируете может содержать записи пользователя, данные заказа, токены доступа, или что-то еще ваш бэкэнд возвращает. конвертер, который отправляет вашу полезную нагрузку на удаленный сервер превращает частный ответ в кого-то другого's log линия. выполнение работы клиент-сторона означает, что данные остаются именно там, где они начались. это по умолчанию для каждого инструмента на Toolz.dev, и если вы хотите более полный случай, почему эта архитектура имеет значение, я изложил это в руководство по конфиденциальности данных для онлайн-инструментов, йо-

Где это укладывается в настоящий трубопровод?

Сам по себе конвертер один шаг, но это обычно последний прыжок более длинного потока, и он естественным образом соединяется с горсткой других инструментов. наиболее распространенный круглый путь в моей неделе: экспортировать JSON из API, редактировать или фильтровать его, конвертировать в CSV, и передать его кому-то, кто живет в электронных таблицах. Когда они отправляют его обратно с изменениями, я конвертирую другое направление с помощью Преобразователь CSV в JSON, который анализирует файл по RFC 4180 и выводит типы, чтобы я снова получал чистые объекты. Эти два инструмента являются преднамеренными зеркалами друг друга, поэтому они сшиваются.

Прежде чем конвертировать, я часто хочу видеть данные как сетку, чтобы проверить их разумность Просмотрщик CSV отображает CSV как сортируемую таблицу, чтобы я мог подтвердить, что экспорт выглядит правильно. И когда пунктом назначения является вовсе не электронная таблица, а другая система, говорящая на XML, XML в JSON конвертер и его аналоги покрывают эту ногу. потому что каждый из этих запускается локально, вы можете связать их в один и тот же частный файл без единой загрузки. если вы собираете набор инструментов для такого рода споров данных, мой Руководство по набору инструментов для разработчиков веб-разработчика рассказывает, как я думаю о сборке.

Часто задаваемые вопросы

Как преобразовать json в CSV? откройте Преобразователь JSON в CSV, вставить массив объектов JSON в поле ввода, и нажмите Convert. Объектные ключи становятся строкой заголовка и каждый объект становится строкой данных, тогда вы можете скопировать CSV или загрузить его как .csv файл для открытия в Excel или Google Sheets. Вся обработка происходит в вашем браузере, поэтому ничего не загружается.

Какую структуру JSON ожидает конвертер? Идеально подходит массив объектов, где каждый объект становится одной строкой Также принимается единый объект, который становится однорядным файлом Значения, которые не являются объектами, помещаются под a value столбец, поэтому ничего не потеряно, и инструмент предупреждает вас, когда это произойдет.

Как он обрабатывает объекты с разными полями? Заголовок - объединение каждого ключа, найденного по всем объектам, сохранённое в порядке первого появления каждого ключа Объект, отсутствующий в одном из этих ключей, просто получает пустую ячейку в этом столбце, поэтому неравномерные записи всё ещё дают чистую, полную таблицу без сброшенных данных.

Как обрабатываются вложенные объекты и массивы? При сплющивании вложенный объект расширяется в столбцы с точечными обозначениями address.city; с его выключением объект записывается как строка JSON в одной ячейке Массивы могут храниться как JSON, чтобы сохранить их точно, или соединяться с разделителем для более читаемого столбца Вы выбираете для каждого преобразования.

Почему я должен использовать окончания линий CRLF для Excel? Microsoft Excel в Windows ожидает, что каретка-возврат плюс линейный канал в конце каждой строки. Выбор CRLF позволяет избежать слияния или неправильного чтения строк при открытии файла. Для большинства других инструментов и для Google Sheets LF работает нормально.

Правильно ли ускользают запятые и кавычки внутри значений? Да. Следуя RFC 4180, любое поле, содержащее разделитель, двойную кавычку или разрыв строки, оборачивается двойными кавычками, а внутренние кавычки удваиваются. при этом адреса, описания и другой свободный текст сохраняются как одно допустимое поле вместо разделения по столбцам.

Безопасно ли конвертировать чувствительный JSON? Да. преобразование полностью выполняется в JavaScript в вашем браузере, ни один сетевой запрос не несет ваши данные, ничего не регистрируется и не сохраняется, и оно работает в автономном режиме после загрузки. JSON, содержащий ключи API, записи пользователей или внутренние идентификаторы, никогда не покидает вашу машину.

Могу ли я преобразовать CSV обратно в JSON? да. выше Преобразователь CSV в JSON переворачивает процесс, анализируя файл, разделенный запятыми, обратно в массив объектов JSON с выводом типов. Round-tripping позволяет перемещать данные между электронными таблицами и API, не переписывая их вручную.

Comments

0 comments

0/2000 characters

No comments yet. Be the first to share your thoughts!