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