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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Dmitry Efimov
February 01, 2018
Programming
91
0
Share
Ликбез по JSON
Dmitry Efimov
February 01, 2018
More Decks by Dmitry Efimov
See All by Dmitry Efimov
Автоматизируем синхронизацию HTTP API и документации
tuwilof
0
47
Автоматизация Document-Driven Development для проектов с большим API
tuwilof
0
48
Инструменты для обнаружения рассинхронизации реализации “REST” API от документации
tuwilof
0
53
Валидация “REST” API по документации APIB
tuwilof
0
46
Негативное тестирование “REST” API и защита от него
tuwilof
0
340
API Blueprint
tuwilof
0
85
Документирование API
tuwilof
0
200
Почему и как заменить все id на UUID
tuwilof
0
100
Authentication in rails. Monolith vs SPA
tuwilof
0
210
Other Decks in Programming
See All in Programming
一度始めたらやめられない開発効率向上術 / Findy あなたのdotfilesを教えて!
k0kubun
3
2.7k
Strategy for Finding a Problem for OSS: With Real Examples
kibitan
0
130
L’IA au service des devs : Anatomie d'un assistant de Code Review
toham
0
170
RSAが破られる前に知っておきたい 耐量子計算機暗号(PQC)入門 / Intro to PQC: Preparing for the Post-RSA Era
mackey0225
3
110
Tamach-sre-3_ANDPAD-shimaison93
mane12yurks38
0
230
PHPで TLSのプロトコルを実装してみる
higaki_program
0
720
KagglerがMixSeekを触ってみた
morim
0
360
Kubernetesでセルフホストが簡単なNewSQLを求めて / Seeking a NewSQL Database That's Simple to Self-Host on Kubernetes
nnaka2992
0
190
「接続」—パフォーマンスチューニングの最後の一手 〜点と点を結ぶ、その一瞬のために〜
kentaroutakeda
5
2.4k
存在論的プログラミング: 時間と存在を記述する
koriym
5
740
Codex CLIのSubagentsによる並列API実装 / Parallel API Implementation with Codex CLI Subagents
takatty
2
750
Laravel Nightwatchの裏側 - Laravel公式Observabilityツールを支える設計と実装
avosalmon
1
300
Featured
See All Featured
Unsuck your backbone
ammeep
672
58k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
68
38k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
55k
Being A Developer After 40
akosma
91
590k
Code Review Best Practice
trishagee
74
20k
How to Talk to Developers About Accessibility
jct
2
170
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
From π to Pie charts
rasagy
0
160
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
300
The Mindset for Success: Future Career Progression
greggifford
PRO
0
290
The Curse of the Amulet
leimatthew05
1
11k
AI: The stuff that nobody shows you
jnunemaker
PRO
4
500
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