TTech
Developer & Data 5 min readUpdated Oct 16, 2026

How to Format and Validate JSON (Common Syntax Errors & Security)

Why trailing commas break parsers, the difference between valid JSON and JavaScript objects, and security precautions for developer data.

K
Kavita Patel
Senior Software Engineer, TTech
Key Questions Answered in this Guide
  • Why does JSON throw a syntax error for trailing commas?
  • What is the difference between valid JSON and a JavaScript object literal?
  • Can JSON contain single quotes or comments?
  • Is it safe to paste confidential API responses and tokens into online formatters?

1. What JSON Actually Permits (RFC 8259)

JavaScript Object Notation (JSON) is a strict text serialization specification governed by IETF RFC 8259 and ECMA-404. Unlike relaxed programming syntax, JSON enforces rigorous structural constraints to ensure cross-language compatibility between Python, Go, Java, and C#.

2. The Four Most Common JSON Syntax Errors

Over 90% of JSON parsing failures stem from four minor typographical issues:

  • Trailing Commas: Placing a comma after the final key-value pair in an object or array (e.g., {"id": 1, "name": "Test",}) is strictly prohibited by RFC 8259.
  • Single Quotes: JSON requires double quotes (") for all string literals and property keys. Single quotes ('text') will throw an immediate parser error.
  • Comments: Standard JSON does not support inline comments (// or /* */). Use JSON5 or YAML if your configuration format requires commentary.
  • Unquoted Keys: Unlike JavaScript, every object key must be wrapped in double quotes ({"key": "value"}, not {key: "value"}).

3. JSON vs. JavaScript Object Literals

Because JSON originated from JavaScript syntax, many programmers assume they are interchangeable. In JavaScript, keys can omit quotes, functions can be assigned as values, and undefined or NaN are recognized primitives.

JSON supports only six data types: String, Number, Boolean, Null, Object, and Array. It cannot store functions, RegExp patterns, undefined, Date objects, or BigInt primitives.

FeatureValid in JavaScript ObjectValid in JSON (RFC 8259)
Single quotes around stringsYesNo (Parse Error)
Trailing commas in arraysYesNo (Parse Error)
Keys without quotation marksYesNo (Parse Error)
Comments (// or /* */)YesNo (Parse Error)
Functions and closuresYesNo
undefined primitiveYesNo (converts to null)

4. How JSON Indentation and Formatting Works

When debugging minified API responses, human developers require structural whitespace. Under the hood, formatters parse the raw string into a memory tree and reconstruct it with uniform line breaks and indentation:

// Client-side clean formatting in 1 line const formatted = JSON.stringify(JSON.parse(rawInput), null, 2);

Standard 2-space indentation using ECMAScript JSON serializer.

5. Data Privacy When Formatting Sensitive Payloads

Developers routinely format JSON payloads containing user emails, Stripe checkout sessions, database connection strings, and JWT auth tokens.

If you paste confidential production payloads into formatters that send content to third-party cloud servers, you violate data residency policies and risk credential leaks. TTech executes all JSON formatting entirely within your browser runtime with zero remote network calls.

Frequently Asked Questions

Direct answers to the most common questions people ask online about this topic.

How do I handle very large JSON files (> 100 MB)?

Standard JSON.parse loads the entire dataset into memory simultaneously, which can crash the browser tab. For gigabyte-sized files, use streaming parsers like Oboe.js or command-line utilities like jq.

Can JSON preserve floating-point numbers without precision loss?

JSON numbers follow IEEE 754 double-precision floating-point format. Integers outside the safe range (-(2^53 - 1) to 2^53 - 1) should be serialized as strings to prevent truncation in JavaScript.

Why does JSON.stringify turn Date objects into strings?

Because JSON has no native Date type. It automatically invokes the Date.prototype.toJSON() method, producing an ISO 8601 UTC timestamp string.