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
90
Ликбез по JSON
Dmitry Efimov
February 01, 2018
Tweet
Share
More Decks by Dmitry Efimov
See All by Dmitry Efimov
Автоматизируем синхронизацию HTTP API и документации
tuwilof
0
45
Автоматизация Document-Driven Development для проектов с большим API
tuwilof
0
47
Инструменты для обнаружения рассинхронизации реализации “REST” API от документации
tuwilof
0
51
Валидация “REST” API по документации APIB
tuwilof
0
44
Негативное тестирование “REST” API и защита от него
tuwilof
0
340
API Blueprint
tuwilof
0
83
Документирование API
tuwilof
0
200
Почему и как заменить все id на UUID
tuwilof
0
97
Authentication in rails. Monolith vs SPA
tuwilof
0
210
Other Decks in Programming
See All in Programming
Go コードベースの構成と AI コンテキスト定義
andpad
0
150
gunshi
kazupon
1
140
例外処理とどう使い分ける?Result型を使ったエラー設計 #burikaigi
kajitack
14
3.6k
GISエンジニアから見たLINKSデータ
nokonoko1203
0
190
Canon EOS R50 V と R5 Mark II 購入でみえてきた最近のデジイチ VR180 事情、そして VR180 静止画に活路を見出すまで
karad
0
140
Vibe codingでおすすめの言語と開発手法
uyuki234
0
160
Cap'n Webについて
yusukebe
0
160
MDN Web Docs に日本語翻訳でコントリビュート
ohmori_yusuke
0
230
re:Invent 2025 トレンドからみる製品開発への AI Agent 活用
yoskoh
0
570
AI Agent Tool のためのバックエンドアーキテクチャを考える #encraft
izumin5210
6
1.5k
0→1 フロントエンド開発 Tips🚀 #レバテックMeetup
bengo4com
0
460
GoLab2025 Recap
kuro_kurorrr
0
810
Featured
See All Featured
Exploring anti-patterns in Rails
aemeredith
2
220
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
37
Reflections from 52 weeks, 52 projects
jeffersonlam
355
21k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
140
Automating Front-end Workflow
addyosmani
1371
200k
Building Applications with DynamoDB
mza
96
6.9k
Context Engineering - Making Every Token Count
addyosmani
9
580
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
0
110
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.5k
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
1
220
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