Начните со структуры данных
JSON представляет объекты, массивы, строки, числа, логические значения и null. CSV — таблица полей и записей без такой встроенной системы типов. Используйте CSV для одинаковых строк и столбцов. Сохраняйте JSON для вложенных объектов или списков переменной длины. Аккуратная таблица ещё не доказывает сохранность всех первоначальных связей.
Храните идентификаторы как текст
Код 00127 — идентификатор, а не обязательно число 127. Храните его как текст и импортируйте соответствующий столбец таблицы как текстовый. Это относится и к телефонным номерам, и к очень большим числовым ID. Обычные числа JavaScript не представляют точно все целые числа выше 9 007 199 254 740 991. Если точность важна, используйте строки в кавычках или инструмент с явной поддержкой нужного диапазона.
Доверьте CSV полноценному парсеру
Запятая внутри поля в кавычках — часть данных, а не граница столбца. Такое поле может содержать перенос строки; внутренние двойные кавычки требуют экранирования. Поэтому просто разбить каждую строку по запятым недостаточно. Проверьте разделитель, заголовок, повторяющиеся имена столбцов и ожидаемое число полей. Не удаляйте незаметно записи, не прошедшие проверку.
Определите отображение вложенных значений
Заказ с несколькими товарами требует явного правила экспорта. Можно создать отдельную таблицу товаров с ID заказа или сохранить список как JSON-текст в одной ячейке. При уплощении объектов имена бывают неоднозначными, если ключи уже содержат выбранный разделитель. Зафиксируйте соответствие и применяйте то же правило при обратном импорте. Сортировка ключей объекта не равна изменению порядка массива.
Сначала проверьте небольшой полный цикл
Преобразуйте представительную выборку, импортируйте её обратно и сравните число записей и отдельные значения. Включите диакритику, пустые строки, null, кавычки и многострочный текст. Открывая ненадёжный CSV в таблице, проверьте ячейки, которые могут стать формулами, и используйте настройки текстового импорта. Сохраните исходник и параметры. Эти проверки выявляют смысловые изменения, незаметные в сообщении об успешном скачивании.
www.rfc-editor.org · developer.mozilla.org
