JSON Formatter & Validator


JSON Validator

Validates a JSON string against RFC 4627 (The application/json media type for JavaScript Object Notation) and against the JavaScript language specification. You can configure the validator to be lenient or strict.

*The maximum size limit for file upload is 2 megabytes.

If you want to learn more about JSON, jump to the JSON Explained section of this page.

JSON Explained

What is JSON?

JSON stands for «JavaScript Object Notation» and is pronounced «Jason» (like in the Friday the 13th movies).

JSON формат: создание данных, использование с PHP и JS

It’s meant to be a human-readable and compact solution to represent a complex data structure and facilitate data-interchange between systems.

Why use JSON?

There are tons of reasons why you would want to use JSON:

  • It’s human readable… if it’s properly formatted 😛
  • It’s compact because it doesn’t use a full markup structure, unlike XML
  • It’s easy to parse, especially in JavaScript
  • A gazillion JSON libraries are available for most programming languages
  • The data structure is easy to understand

The JSON format

There are just a few rules that you need to remember:

  • Objects are encapsulated within opening and closing brackets { }
  • An empty object can be represented by { }
  • Arrays are encapsulated within opening and closing square brackets [ ]
  • An empty array can be represented by [ ]
  • A member is represented by a key-value pair
  • The key of a member should be contained in double quotes. (JavaScript does not require this. JavaScript and some parsers will tolerate single-quotes)
  • Each member should have a unique key within an object structure
  • The value of a member must be contained in double quotes if it’s a string (JavaScript and some parsers will tolerates single-quotes)
  • Boolean values are represented using the true or false literals in lower case
  • Number values are represented using double-precision floating-point format. Scientific notation is supported
  • Numbers should not have leading zeroes
  • «Offensive» characters in a string need to be escaped using the backslash character
  • Null values are represented by the null literal in lower case
  • Other object types, such as dates, are not properly supported and should be converted to strings. It becomes the responsibility of the parser/client to manage this
  • Each member of an object or each array value must be followed by a comma if it’s not the last one
  • The common extension for json files is ‘.json’
  • The mime type for json files is ‘application/json’


JSON in JavaScript

Because JSON derives from JavaScript, you can parse a JSON string simply by invoking the eval() function. The JSON string needs to be wrapped by parenthesis, else it will not work! This is the #1 problem when programmers first start to manipulate JSON strings. That being said, DON’T do this!

Example using the ‘dangerous’ eval():

As pointed out by M. Clement at Inimino, a better and more secure way of parsing a JSON string is to make use of JSON.parse(). The eval() function leaves the door open to all JS expressions potentially creating side effects or security issues, whereas JSON.parse() limits itself to just parsing JSON. JSON.parse() is available natively in most recent browsers. If you need to support older browser, make use of an external JavaScript library such as Douglas Crockford’s json2.js.

Example using JSON.parse():

If you want to create a JSON string representation of your JavaScript object, make use of the JSON.stringify() function.

Example using JSON.stringify():

You can also create JavaScript objects using the JSON syntax directly in your code.

Example of creating a JavaScript object using ‘JSON’ syntax:

Programming languages and JSON

The website JSON.org maintains an extensive list of JSON libraries and they are categorized in programming languages. Unfortunately, there are so many libraries out there that it’s very hard to chose one! Note that VERY few JSON libraries have strict adherence to the JSON specification and this can lead to parsing problems between systems.

These are my recommended JSON libraries:

Other useful JSON resources

  • JSON.org — Excellent overall explanation and list of many JSON libraries
  • Wikipedia — Brief explanation of JSON
  • TheServerSide.net — A list of JSON resource guide on TheServerSide.com

© FreeFormatter.com — FREEFORMATTER is a d/b/a of 10174785 Canada Inc. — Copyright Notice — Privacy Statement — Terms of Use

Введение в JSON

Italiano日本한국어فارسیPolskiPortuguêsRomânăРусскийСрпско-хрватскиSlovenščinaEspañolSvenskaTürkçeTiếng Việt

ECMA-404 The JSON Data Interchange Standard.


char chars


int frac
int exp
int frac exp
digit1-9 digits
digit1-9 digits

JSON (JavaScript Object Notation) — простой формат обмена данными, удобный для чтения и написания как человеком, так и компьютером. Он основан на подмножестве языка программирования JavaScript, определенного в стандарте ECMA-262 3rd Edition — December 1999. JSON — текстовый формат, полностью независимый от языка реализации, но он использует соглашения, знакомые программистам C-подобных языков, таких как C, C++, C#, Java, JavaScript, Perl, Python и многих других. Эти свойства делают JSON идеальным языком обмена данными.

JSON основан на двух структурах данных:

  • Коллекция пар ключ/значение. В разных языках, эта концепция реализована как объект, запись, структура, словарь, хэш, именованный список или ассоциативный массив.
  • Упорядоченный список значений. В большинстве языков это реализовано как массив, вектор, список или последовательность.

Это универсальные структуры данных. Почти все современные языки программирования поддерживают их в какой-либо форме. Логично предположить, что формат данных, независимый от языка программирования, должен быть основан на этих структурах.

В нотации JSON это выглядит так:

Объект — неупорядоченный набор пар ключ/значение.

Формат JSON: пример и описание

Объект начинается с  (открывающей фигурной скобки) и заканчивается  (закрывающей фигурной скобкой). Каждое имя сопровождается  (двоеточием), пары ключ/значение разделяются  (запятой).

Массив — упорядоченная коллекция значений. Массив начинается с  (открывающей квадратной скобки) и заканчивается  (закрывающей квадратной скобкой). Значения разделены  (запятой).

Значение может быть строкой в двойных кавычках, числом, , , , объектом или массивом. Эти структуры могут быть вложенными.

Строка — коллекция нуля или больше символов Unicode, заключенная в двойные кавычки, используя  (обратную косую черту) в качестве символа экранирования. Символ представляется как односимвольная строка. Похожий синтаксис используется в C и Java.

Число представляется так же, как в C или Java, кроме того, что используется толко десятичная система счисления.

Пробелы могут использоваться между любыми лексемами.

Исключая некоторые детали кодирования, вышеизложенное полностью описывает язык.


Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *