JSON
JavaScript Object Notation
What is JSON?
- A data exchange format between programs
- Human-readable text
- Expressed as 'name:value' pairs
The most common failure point when handing over data is “which value sits in which column.” With Excel or CSV, the moment one column shifts, a phone number ends up in the recipient name field. JSON attaches a label to every value, so even if the order of fields changes or a new field is added in the middle, everything else still reads correctly. The data carries its own documentation, so the receiving side can tell what is what without separate instructions. Most of the time saved in integration discussions comes from no longer arguing over field order and column positions.
A JSON value can be one of just six types: a string, a number, true/false, an empty value (null), an array for listing multiple items ([ ]), or an object of name-value pairs ({ }). The key is nesting arrays and objects, which lets JSON express layered structures such as “one order containing three products, each with a quantity and unit price.” In Excel, the order number would have to be repeated on three rows; in JSON, it all fits in a single block. The real difference from traditional forms is that it can hold hierarchies that a single table cannot.
That said, there is no reason to convert all data to JSON. For a simple table with hundreds of thousands of rows, CSV is more practical: it is smaller and opens directly in Excel. JSON’s advantage over XML is that it avoids repeated tags, so the same content takes fewer characters, and continuously growing data such as logs is handled in JSONL, which writes one record per line. If you want to enforce the names and types of the fields being exchanged, attach a JSON Schema to the specification. The “sample response” in API documentation is usually this kind of block.
In practice, most problems come from syntax. One extra comma, or a double quote swapped for a single quote, and the whole file becomes unreadable. Unlike Excel, where one cell goes wrong and the rest is fine, a 500-record response can drop to zero records because of a single character. People also forget that comments are not allowed, so adding notes to an AI-generated config file often keeps the service from starting. Dates and leading zeros are also regular culprits. JSON has no date type, so you must agree in advance to write dates as strings like “2026-03-01,” and a postal code such as 06234 entered as a number becomes 6234. Korean text will be corrupted unless saved as UTF-8.
Jaryong KooMarketing PhD and authority in AI, data analytics, and personal branding
John KimAuthor of B2B Marketing Design and CEO of Nanum ConsultingDouglas Crockford popularized it in the early 2000s by organizing and formally specifying JavaScript's data notation. It has since become a language-independent standard for exchanging data.
Consider a hypothetical case. Company A, a household goods distributor with 140 employees and annual revenue in the KRW 30 billion (≈ US$22,445,000) range, was compiling 4,200 monthly online-store orders in Excel and sending them to its logistics provider. Even with two staff members spending 2 hours a day aligning columns, misdeliveries caused by swapped recipient names and phone numbers still happened 6 to 7 times a month. The logistics provider proposed an API integration and sent a JSON specification, but nobody could read it, so three weeks passed with no progress.
- Kim, the team lead on the Online Business team, opened the spec and pointed to the three names “order number, recipient, product list,” summing it up: “So the Excel headers are right there in the data.”
- The logistics integration lead explained, “The product list is an array inside square brackets, so an order with three items holds three blocks,” describing how each order is bundled into a single block.
- When Park, an IT associate at Company A, pasted five samples into a free JSON validator, it flagged two missing commas in red, and fixing them took 10 minutes.
- On day 3 of testing, the postal code 06234 came out as 6234, so Kim, the team lead, asked them to send “postal codes and employee IDs as strings, not numbers,” and the specification was revised.
- The integration was finished eight weeks later. The 2 hours a day spent transferring 4,200 orders a month dropped to 10 minutes, and misshipments from items shifting out of order fell from 6–7 a month to zero for two straight months.