Все руководства

Из CSV в JSON без потери данных

Опубликовано · Обновлено 2 мин чтения

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

Разделитель

В CSV столбцы разделяются запятой или, во Франции очень часто, точкой с запятой. Причина в числах: по-французски 24.5 пишется с запятой, которая поэтому не может ещё и разделять столбцы. Инструмент распознаёт оба разделителя, так что файл, сохранённый из французской электронной таблицы, читается правильно, а 24,5 остаётся в одном столбце.

Кавычки

Когда само значение содержит разделитель, оно записывается в кавычках, например "полив: утром, вечером". Инструмент тогда сохраняет значение целиком. Если сам текст содержит кавычки, в CSV они удваиваются, а в JSON становятся экранированными кавычками, например "зона \"север\"".

Числа

Все значения попадают в JSON как текст, включая числа: 18 становится "18", а 24,5 становится "24,5". Это важно знать, если файл потом читает программа. Программа, ожидающая настоящее число, не поймёт "24,5": придётся заменить запятую точкой и убрать кавычки вокруг числовых значений.

Пустые поля

Пустое поле CSV становится в JSON пустой строкой, двумя кавычками без содержимого, а не значением "null". Если ваша программа различает «пусто» и «отсутствует», предусмотрите этот шаг очистки.

Когда преобразовывать

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

Проверка результата

Сравните число строк в CSV с числом в JSON, затем откройте полученный файл. Сначала посмотрите столбцы с десятичными знаками, диакритикой или запятыми: ошибки появляются именно там.

CSV в JSON

Чтобы пойти в обратную сторону, см. JSON в CSV.

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

Почему мои числа становятся текстом в JSON?
Инструмент записывает все значения как текст, включая числа. Если программа ожидает настоящее число, замените десятичную запятую точкой и уберите кавычки вокруг числовых значений.
Мой CSV использует точки с запятой, прочитается ли он правильно?
Да, инструмент распознаёт точку с запятой так же, как запятую, что соответствует французским электронным таблицам.
Что происходит с пустой ячейкой?
Она становится пустой строкой в JSON, а не значением "null".
Как сохранить запятую внутри значения?
Она должна стоять в кавычках в CSV, например "полив: утром, вечером". Инструмент тогда сохраняет значение целиком.

Автор: Lmaotools