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
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Dmitry Efimov
February 01, 2018
Programming
0
91
Ликбез по JSON
Dmitry Efimov
February 01, 2018
Tweet
Share
More Decks by Dmitry Efimov
See All by Dmitry Efimov
Автоматизируем синхронизацию HTTP API и документации
tuwilof
0
46
Автоматизация Document-Driven Development для проектов с большим API
tuwilof
0
48
Инструменты для обнаружения рассинхронизации реализации “REST” API от документации
tuwilof
0
53
Валидация “REST” API по документации APIB
tuwilof
0
45
Негативное тестирование “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
AIコードレビューの導入・運用と AI駆動開発における「AI4QA」の取り組みについて
hagevvashi
0
460
Unity6.3 AudioUpdate
cova8bitdots
0
130
RAGでハマりがちな"Excelの罠"を、データの構造化で突破する
harumiweb
9
2.8k
エラーログのマスキングの仕組みづくりに役立ったASTの話
kumoichi
0
210
How to stabilize UI tests using XCTest
akkeylab
0
120
AI時代のシステム設計:ドメインモデルで変更しやすさを守る設計戦略
masuda220
PRO
5
980
Claude Codeセッション現状確認 2026福岡 / fukuoka-aicoding-00-beacon
monochromegane
4
420
What Spring Developers Should Know About Jakarta EE
ivargrimstad
0
270
grapheme_strrev関数が採択されました(あと雑感)
youkidearitai
PRO
1
220
Swift ConcurrencyでよりSwiftyに
yuukiw00w
0
260
モックわからないマン卒業記 ~振る舞いを起点に見直した、フロントエンドテストにおけるモックの使いどころ~
tasukuwatanabe
2
280
エージェント開発初心者の僕がエージェントを作った話と今後やりたいこと
thasu0123
0
240
Featured
See All Featured
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.1k
Thoughts on Productivity
jonyablonski
75
5.1k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
140
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
760
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.2k
A Modern Web Designer's Workflow
chriscoyier
698
190k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.4k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.8k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
55k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
140
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