ЁЯТбJSON рдбреЗрдЯрд╛ рдХреЛ рд╕рд╛рдл рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рд╣рдорд╛рд░рд╛ рдореБрдлреНрдд рдСрдирд▓рд╛рдЗрди рдлреЙрд░реНрдореЗрдЯрд░ рддреБрд░рдВрдд JSON рдХреЛ рд╕реБрдВрджрд░, рд╡реИрдз рдФрд░ рдЫреЛрдЯрд╛ рдХрд░рддрд╛ рд╣реИтАФAPIs рдХреЛ рдбреАрдмрдЧ рдХрд░рдиреЗ, рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдФрд░ рдЯреАрдо рд╕рд╣рдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЖрджрд░реНрд╢ред ЁЯЪА 10MB рддрдХ рдХреЗ рдлрд╛рдЗрд▓реЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред
ЁЯФН рдЯреВрд▓ JSON рдореЗрдВ рд╕рд┐рдВрдЯреИрдХреНрд╕ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИ
ЁЯУК JSON рдХреЛ рдЕрдореВрд░реНрдд рд╕рд┐рдВрдЯреИрдХреНрд╕ рдЯреНрд░реА рдореЗрдВ рдкрд╛рд░реНрд╕ рдХрд░рддрд╛ рд╣реИ
ЁЯОи рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рдФрд░ рд▓рд╛рдЗрди рдмреНрд░реЗрдХ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ
ЁЯУд рд╕реБрдВрджрд░ рдпрд╛ рдЫреЛрдЯрд╛ рдЖрдЙрдЯрдкреБрдЯ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ
RFC 8259 рдХреЗ рдЕрдиреБрд░реВрдк:
рд╡рд┐рд╢реЗрд╖рддрд╛ | рд╕рдорд░реНрдерди | рдиреЛрдЯреНрд╕ |
---|---|---|
рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ | рд╕рднреА (рд╕реНрдЯреНрд░рд┐рдВрдЧ, рдирдВрдмрд░, рдмреВрд▓рд┐рдпрди, рдирд▓, рдРрд░реЗ, рдСрдмреНрдЬреЗрдХреНрдЯ) | тЬЕ рдкреВрд░реНрдг |
рдиреЗрд╕реНрдЯрд┐рдВрдЧ рдЧрд╣рд░рд╛рдИ | рдЕрд╕реАрдорд┐рдд | ЁЯМ│ рдЧрд╣рд░реА рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИ |
рдпреВрдирд┐рдХреЛрдб | рд╣рд╛рдБ | ЁЯФд рдЗрдореЛрдЬреА, рдЧреИрд░-рд▓реИрдЯрд┐рди рд╡рд░реНрдгреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ |
JSON5 | рдЖрдВрд╢рд┐рдХ | тнР рдЧреИрд░-рд╕рдЦреНрдд рдореЛрдб рдореЗрдВ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ |
рдлреЙрд░реНрдореЗрдЯрд┐рдВрдЧ рдЧрддрд┐ рддреБрд▓рдирд╛:
рдлрд╛рдЗрд▓ рдЖрдХрд╛рд░ | рдлреЙрд░реНрдореЗрдЯрд┐рдВрдЧ рд╕рдордп |
---|---|
1 KB | тЪб <50ms |
1 00KB | тЪб <300ms |
1 MB | тП│ <1.5s |
1 0MB | тП│ <8s |
рд╕рд╛рдорд╛рдиреНрдп JSON рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рддрд╛ рд╣реИ:
рддреНрд░реБрдЯрд┐ рдкреНрд░рдХрд╛рд░ | рдЙрджрд╛рд╣рд░рдг | рд╕реБрдзрд╛рд░ |
---|---|---|
рдЯреНрд░реЗрд▓рд┐рдВрдЧ рдХреЙрдорд╛ | {"a":1,} | рдЕрдВрддрд┐рдо рдХреЙрдорд╛ рд╣рдЯрд╛рдПрдВ |
рдЕрдирдХреНрд▓реЛрдЬреНрдб рдХреЛрдЯ | {"a:1} | рдмрдВрдж рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдХреЛрдЯ рдЬреЛрдбрд╝реЗрдВ |
рдЕрдорд╛рдиреНрдп рдирдВрдмрд░ | {"a":1.2.3} | рджрд╢рдорд▓рд╡ рдкреНрд░рд╛рд░реВрдк рдареАрдХ рдХрд░реЗрдВ |
рдЕрдкрдиреЗ рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ JSON рдХреЛ рдлреЙрд░реНрдореЗрдЯ рдХрд░реЗрдВ:
ЁЯФдJSON рдлрд╛рдЗрд▓ рдХреЛ рдлреЙрд░реНрдореЗрдЯ рдХрд░реЗрдВ
jq '.' input.json > formatted.json
рдлреЙрд░реНрдореЗрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП jq рдХрд╛ рдЙрдкрдпреЛрдЧ
ЁЯУЙJSON рдХреЛ рдорд┐рдирд┐рдлрд╛рдИ рдХрд░реЗрдВ
jq -c '.' input.json > minified.json
рдХреЙрдореНрдкреИрдХреНрдЯ рдЖрдЙрдЯрдкреБрдЯ
ЁЯФМPowerShell рдлреЙрд░реНрдореЗрдЯ
ConvertTo-Json (Get-Content raw.json) -Depth 100 | Set-Content formatted.json
рдиреЗрдЯрд┐рд╡ PowerShell рд╡рд┐рдзрд┐
тМия╕П CMD рд╡реИрд▓рд┐рдбреЗрдЯ
python -m json.tool < input.json
Python рдХреЗ JSON рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ
// рдкрд╣рд▓реЗ: {"data":{"user":123}}
// рдмрд╛рдж: {
// "data": {
// "user": 123
// }
// }
{"extends":"eslint:recommended","rules":{"semi":["error","always"]}}
рдЕрдзрд┐рдХрд╛рдВрд╢ IDEs рдореЗрдВ JSON рдХреЛ рдлреЙрд░реНрдореЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП `Ctrl+Alt+L` (Windows) рдпрд╛ `Cmd+Opt+L` (Mac) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
рдмреИрдВрдбрд╡рд┐рдбреНрде рдЙрдкрдпреЛрдЧ рдХреЛ рдХрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП APIs рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рднреЗрдЬрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ JSON рдХреЛ рдорд┐рдирд┐рдлрд╛рдИ рдХрд░реЗрдВ
рдмреЗрд╣рддрд░ JSON рдкрдардиреАрдпрддрд╛ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдПрдбрд┐рдЯрд░ рдореЗрдВ рд╕рд┐рдВрдЯреИрдХреНрд╕ рд╣рд╛рдЗрд▓рд╛рдЗрдЯрд┐рдВрдЧ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ