KKitForma.

Language

EnglishEnglishTürkçeTurkishDeutschGermanBlog unavailable in this language · open toolsEspañolSpanishBlog unavailable in this language · open toolsFrançaisFrenchBlog unavailable in this language · open toolsPortuguêsPortugueseBlog unavailable in this language · open toolsItalianoItalianBlog unavailable in this language · open toolsNederlandsDutchBlog unavailable in this language · open toolsPolskiPolishBlog unavailable in this language · open toolsРусскийRussianBlog unavailable in this language · open toolsУкраїнськаUkrainianBlog unavailable in this language · open toolsSvenskaSwedishBlog unavailable in this language · open toolsNorskNorwegianBlog unavailable in this language · open toolsDanskDanishBlog unavailable in this language · open toolsSuomiFinnishBlog unavailable in this language · open toolsČeštinaCzechBlog unavailable in this language · open toolsRomânăRomanianBlog unavailable in this language · open toolsΕλληνικάGreekBlog unavailable in this language · open toolsالعربيةArabicBlog unavailable in this language · open toolsעבריתHebrewBlog unavailable in this language · open toolsفارسیPersianBlog unavailable in this language · open toolsاردوUrduBlog unavailable in this language · open toolsहिन्दीHindiBlog unavailable in this language · open toolsবাংলাBengaliBlog unavailable in this language · open toolsதமிழ்TamilBlog unavailable in this language · open toolsతెలుగుTeluguBlog unavailable in this language · open toolsमराठीMarathiBlog unavailable in this language · open toolsગુજરાતીGujaratiBlog unavailable in this language · open tools简体中文Chinese SimplifiedBlog unavailable in this language · open tools繁體中文Chinese TraditionalBlog unavailable in this language · open tools日本語JapaneseBlog unavailable in this language · open tools한국어KoreanBlog unavailable in this language · open toolsTiếng ViệtVietnameseBlog unavailable in this language · open toolsไทยThaiBlog unavailable in this language · open toolsBahasa IndonesiaIndonesianBlog unavailable in this language · open toolsBahasa MelayuMalayBlog unavailable in this language · open toolsFilipinoFilipinoBlog unavailable in this language · open toolsKiswahiliSwahiliBlog unavailable in this language · open toolsAfrikaansAfrikaansBlog unavailable in this language · open toolsMagyarHungarianBlog unavailable in this language · open toolsБългарскиBulgarianBlog unavailable in this language · open toolsHrvatskiCroatianBlog unavailable in this language · open toolsSrpskiSerbianBlog unavailable in this language · open toolsSlovenčinaSlovakBlog unavailable in this language · open toolsSlovenščinaSlovenianBlog unavailable in this language · open toolsLietuviųLithuanianBlog unavailable in this language · open toolsLatviešuLatvianBlog unavailable in this language · open toolsEestiEstonianBlog unavailable in this language · open toolsCatalàCatalanBlog unavailable in this language · open toolsEuskaraBasqueBlog unavailable in this language · open tools

Code & data

Convert CSV and JSON while keeping identifiers intact

Handle headers, quoted cells, leading zeros and spreadsheet formulas, and understand why a CSV–JSON round trip is not always reversible.

Identify the delimiter and header row

Open a small sample of the CSV as text before converting it. Check whether columns are separated by commas, semicolons or tabs, and whether the first row contains headers. A comma inside a quoted cell is part of that cell, not a new column.

KitForma accepts these three delimiter choices and supports quoted cells containing delimiters or line breaks. Headers must be nonempty and unique, and every data row must contain the expected number of cells. When a row is rejected, compare its quoting and column count with the header rather than removing data arbitrarily.

Rejected header: code,code
Data row: 00123,42

Use meaningful unique headers, such as product_code,quantity, before converting.

Understand the CSV-to-JSON value rule

KitForma’s CSV-to-JSON converter keeps all cell values as strings. That is useful for identifiers such as 00127, where the leading zeros may matter. It also means that a cell containing 42 becomes a JSON string, not a numeric value.

Choose data types separately according to the application that will consume the result. Do not convert every digit-only cell into a number: postal codes, stock identifiers and telephone-like values can require their original spelling. Test one representative row before importing an entire converted table.

CSV:
code,label,quantity
00123,"Bolts, small",42

JSON:
[
  {"code":"00123","label":"Bolts, small","quantity":"42"}
]

Know what JSON-to-CSV can represent

The reverse tool accepts an array of objects. It collects the union of keys in their first-seen order to form the columns. Missing and null values become empty cells; nested objects and arrays become JSON strings inside cells rather than expanding into separate columns.

Those decisions mean that converting back cannot reconstruct every original distinction. An empty cell no longer tells you whether a field was missing or null. If your destination needs a fully flattened nested structure, prepare that structure explicitly before conversion; the tool does not invent a database schema.

Match protection to the receiving application

JSON-to-CSV enables spreadsheet formula protection by default. It prefixes formula-like cells, including headers, with an apostrophe when they begin with certain spreadsheet-significant characters, allowing for leading whitespace. This deliberately changes those cell contents.

Keep that option when preparing untrusted values for a spreadsheet, but inspect the imported result in the actual application. If a downstream system needs literal original strings, decide how it will handle those values before choosing preservation instead. Neither mode guarantees that every spreadsheet application interprets a CSV identically.

  1. Select the delimiter expected by the receiving application.
  2. Choose formula protection intentionally instead of leaving the decision unexplained.
  3. Inspect headers, negative values and text beginning with =, +, - or @ after import.

Check the converted sample before scaling up

Input is limited to 200,000 UTF-16 code units. JSON-to-CSV rejects numeric values that cannot retain their decimal value in its supported conversion path; quote large identifiers at the source. Formatting the JSON first can help you inspect it but does not remove this conversion constraint.

Compare row counts, header names, a value containing a delimiter, a multiline cell and an identifier with leading zeros. Keep both the source and converted file until the import is accepted. Text is processed locally, but conversion still needs a deliberate check of the data’s meaning.

KITFORMA

Put it into practice

No account needed. Open an article, then try the matching tool.

Further reading

Published:

Found something that needs a correction? Tell us.