Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Ликбез по JSON
Search
Dmitry Efimov
February 01, 2018
Programming
0
88
Ликбез по JSON
Dmitry Efimov
February 01, 2018
Tweet
Share
More Decks by Dmitry Efimov
See All by Dmitry Efimov
Автоматизируем синхронизацию HTTP API и документации
tuwilof
0
42
Автоматизация Document-Driven Development для проектов с большим API
tuwilof
0
45
Инструменты для обнаружения рассинхронизации реализации “REST” API от документации
tuwilof
0
50
Валидация “REST” API по документации APIB
tuwilof
0
43
Негативное тестирование “REST” API и защита от него
tuwilof
0
340
API Blueprint
tuwilof
0
81
Документирование API
tuwilof
0
190
Почему и как заменить все id на UUID
tuwilof
0
94
Authentication in rails. Monolith vs SPA
tuwilof
0
210
Other Decks in Programming
See All in Programming
コード生成なしでモック処理を実現!ovechkin-dm/mockioで学ぶメタプログラミング
qualiarts
0
250
TransformerからMCPまで(現代AIを理解するための羅針盤)
mickey_kubo
7
4.3k
Developer Joy - The New Paradigm
hollycummins
1
350
Claude Agent SDK を使ってみよう
hyshu
0
1.4k
SwiftDataを使って10万件のデータを読み書きする
akidon0000
0
240
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
190
あなたとKaigi on Rails / Kaigi on Rails + You
shimoju
0
180
理論と実務のギャップを超える
eycjur
0
170
Devvox Belgium - Agentic AI Patterns
kdubois
1
140
XP, Testing and ninja testing ZOZ5
m_seki
3
820
CSC305 Lecture 06
javiergs
PRO
0
270
Devoxx BE - Local Development in the AI Era
kdubois
0
140
Featured
See All Featured
Faster Mobile Websites
deanohume
310
31k
Mobile First: as difficult as doing things right
swwweet
225
10k
Automating Front-end Workflow
addyosmani
1371
200k
Rebuilding a faster, lazier Slack
samanthasiow
84
9.2k
Designing Experiences People Love
moore
142
24k
How GitHub (no longer) Works
holman
315
140k
[RailsConf 2023] Rails as a piece of cake
palkan
57
5.9k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Git: the NoSQL Database
bkeepers
PRO
431
66k
Optimizing for Happiness
mojombo
379
70k
Being A Developer After 40
akosma
91
590k
Side Projects
sachag
455
43k
Transcript
Ликбез по JSON
JavaScript Object Notation
основанный на существующих конструкциях языка JavaScript, как облегчённую альтернативу XML
Douglas Crockford
None
None
None
None
None
None
иначе это уже не JSON
где используют JSON?
None
есть же готовые клиенты и сервера
None
негативные кейсы
какие бывают инструменты?
конверторы
редакторы
автоформатирование
diff
валидация
что-то забыли?
православный JSON
None
None
предположим мы хотим написать свой валидатор по TDD
None
невалидно
“”
невалидно
как выглядит самый небольшой пример валидного JSON?
[] и {}
[ [], {} ]
валидно
{ to: “session”, do: “test”, text: “Hello world” }
невалидно
{ ‘to’: “session”, ‘do’: “test”, ‘text’: “Hello world” }
все еще не валидно
{ “to": “session”, “do”: “test”, “text”: “Hello world” }
валидно
{ "name": "Dmitry", "name": "Dima" }
невалидно
далее все валидно
{ "dogecoin": 0.00001, "message": "gift" }
{ "dogecoin": -1, "message": "gift" }
{ "dogecoin": 1000000000000000000000000000000000 000000000000000000000000000000000, "message": "gift" }
{ "dogecoin": 3.7e-5, "message": "gift" }
{ "dogecoin": 6.02e23, "message": "gift" }
вопрос 1: можно ли конвертировать в hash невалидный JSON?
да
вопрос 2: все ли используют валидатор перед конвертацией в hash?
None
доклад от создателя https://www.youtube.com/watch?v=-C-JoyNuQJs diff http://www.jsondiff.com онлайн валидаторы https://jsonlint.com ttps://jsonformatter.curiousconcept.com/
rfc https://tools.ietf.org/html/rfc8259