Перейти к основному содержимому

Конвертация CSV в JSON

Каждая строка CSV становится одним объектом JSON, а строка заголовков задаёт имена свойств. В этом руководстве через конвертер проходит небольшой файл с запятой внутри кавычек и экранированной кавычкой, и мы разбираем каждое применяемое правило.

Разбор примера

Входные данные (CSV)
id,name,item,price,paid
1,"Smith, Jane","Monitor 27""",189.99,true
2,Kim,Keyboard,,false
Результат (JSON)
[
  {
    "id": 1,
    "name": "Smith, Jane",
    "item": "Monitor 27\"",
    "price": 189.99,
    "paid": true
  },
  {
    "id": 2,
    "name": "Kim",
    "item": "Keyboard",
    "price": null,
    "paid": false
  }
]

Поскольку "Smith, Jane" заключено в двойные кавычки, запятая остаётся частью значения и не начинает новый столбец. В "Monitor 27""" удвоенная кавычка превращается в один обычный символ кавычки. Пустая цена у Kim становится null, а числа и true/false выводятся как типы JSON, а не как строки.

Как это обрабатывает конвертер

  • Каждая непустая строка — это одна запись, пустые строки пропускаются. Значение в кавычках не может содержать перенос строки.
  • Заключайте значение в двойные кавычки, если оно содержит разделитель. Внутри кавычек записывайте кавычку как две кавычки ("").
  • Пробелы в начале и в конце каждого значения удаляются.
  • Когда включён параметр «Первая строка в качестве заголовков», первая строка задаёт ключи; когда он выключен, ключами становятся col0, col1, col2 и так далее.
  • Пустые ячейки и слово null становятся null, true и false (в любом регистре) — логическими значениями, а числовой текст становится числом, даже если он в кавычках, поэтому 00123 превращается в 123.
  • Если в строке меньше значений, чем заголовков, недостающие столбцы получают null; значения после последнего заголовка отбрасываются.

Другие руководства по конвертации