Jason ma duży JSON, ale jest nieczytelny, więc musi go utrwalić.
Formatowanie Spec
JSON ma 4 różne typy:
- Liczby; Właśnie
0-9
- Smyczki; Podwójne
"
ciągi znaków uciekały\
- Tablice; Ograniczone przez
[]
, z elementami oddzielonymi,
, elementy mogą być dowolnego z tych typów - Obiekty;
{}
Format jest ograniczony przez , gdykey: value
klucz jest łańcuchem, a wartością jest dowolny z tych typów
Rozstaw
- Tablice powinny mieć dokładnie jedną spację za przecinkami między przedmiotami
- Obiekty powinny mieć tylko jedną spację między kluczem a wartością, po
:
Wcięcie
- Każdy poziom zagnieżdżenia jest wcięty o 2 więcej niż w poprzednim
- Każda para klucz / wartość obiektu jest zawsze w osobnej linii. Obiekty są wcięte
- Tablica jest wcięta w wielu wierszach, jeśli zawiera inną tablicę lub obiekt. W przeciwnym razie tablica pozostaje w jednej linii
Zasady
- Wbudowane, które trywializują to zadanie, nie są dozwolone.
- Jak zawsze standardowe luki są niedozwolone
Przykłady
[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]
}
]