У Джейсона есть большой JSON, но он нечитабелен, поэтому ему нужно его подтвердить.
Спецификация форматирования
JSON имеет 4 различных типа:
- Числа; Только
0-9
- Струны;
"
Строки с двойными кавычками экранированы\
- Массивы; Разделенные
[]
, с элементами, разделенными,
, элементы могут быть любого из этих типов - Объекты; Разделителями по
{}
, формат ,key: value
где ключ представляет собой строку и значение любого из этих типов
Разнос
- Массивы должны иметь ровно один пробел после запятых между элементами
- Объекты должны иметь только один пробел между ключом и значением после
:
вдавливание
- Каждый уровень вложенности имеет отступ на 2 больше, чем предыдущий
- Каждая пара ключ / значение объекта всегда находится на отдельной строке. Объекты с отступом
- Массив имеет отступ в несколько строк, если он содержит другой массив или объект. В противном случае массив остается на одной строке
правила
- Встроенные модули, которые упрощают эту задачу, не допускаются.
- Как всегда, стандартные лазейки запрещены
Примеры
[1,2,3]
[1, 2, 3]
{"a":1,"b":4}
{
"a": 1,
"b": 4
}
"foo"
"foo"
56
56
{"a":[{"b":1,"c":"foo"},{"d":[2,3,4,1], "a":["abc","def",{"d":{"f":[3,4]}}]}]}
{
"a": [
{
"b": 1,
"c": "foo"
},
{
"d": [2, 3, 4, 1],
"a": [
"abc",
"def",
{
"d": {
"f": [3, 4]
}
}
]
}
]
}
[2,["foo123 ' bar \" baz\\", [1,2,3]]]
[
2,
[
"foo123 ' bar \" baz\\",
[1, 2, 3]
]
]
[1,2,3,"4[4,5]"]
[1, 2, 3, "4[4,5]"]
[1,2,3,{"b":["{\"c\":[2,5,6]}",4,5]}]
[
1,
2,
3,
{
"b": ["{\"c\":[2,5,6]}", 4, 5]
}
]
1
Есть JSON разбора встроенных команд разрешено?
—
PurkkaKoodari
Могут ли объекты / массивы быть пустыми? Можем ли мы по-прежнему печатать пробелы после запятых в массивах, если они разбиты на несколько строк?
—
Мартин Эндер
@ MartinBüttner нет, и да
—
Downgoat
@ Pietu1998 хм, я собираюсь сказать нет
—
Downgoat
Разрешены ли языки синтаксического анализатора?
—
Mama Fun Roll