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
76
Ликбез по JSON
Dmitry Efimov
February 01, 2018
Tweet
Share
More Decks by Dmitry Efimov
See All by Dmitry Efimov
Автоматизируем синхронизацию HTTP API и документации
tuwilof
0
27
Автоматизация Document-Driven Development для проектов с большим API
tuwilof
0
39
Инструменты для обнаружения рассинхронизации реализации “REST” API от документации
tuwilof
0
31
Валидация “REST” API по документации APIB
tuwilof
0
29
Негативное тестирование “REST” API и защита от него
tuwilof
0
300
API Blueprint
tuwilof
0
65
Документирование API
tuwilof
0
110
Почему и как заменить все id на UUID
tuwilof
0
73
Authentication in rails. Monolith vs SPA
tuwilof
0
190
Other Decks in Programming
See All in Programming
ADRを一年運用してみた/adr_after_a_year
hanhan1978
7
2.2k
デザインシステムで Tailwind CSSとCSS in JSに分散投資をしたら良かった話
fsubal
18
4.8k
入門 AWS Amplify Gen2 / Introduction to AWS Amplify Gen2
genkiogasawara
1
310
Tailwind CSSを本気でカスタマイズする方法
fsubal
2
260
[技育CAMPアカデミア]アイディアを形に!【超入門】スマホアプリ開発〜リリースまでの流れをご紹介
teamlab
PRO
0
350
ONE WEDGE_company_guide
1wedge_one
0
380
VSCodeでのDatabricks開発もお勧めしたい/I would also recommend Databricks development with VSCode.
kazumain
0
240
CircleCIを活用して AWSへの継続的デリバリーを 実践する
coconala_engineer
1
230
Changed Rules: Architectures with Lightweight Stores
manfredsteyer
PRO
0
230
[SF Ruby, March 2024] Rails on Wasm
palkan
0
380
Javaエンジニアのための Nodejs/Nuxt3入門
hidekatsu_izuno
0
280
甘い香りに誘われてVanilla Extractを1年間運用してみた
miyahkun
1
110
Featured
See All Featured
Designing for humans not robots
tammielis
247
25k
Intergalactic Javascript Robots from Outer Space
tanoku
266
26k
How to Ace a Technical Interview
jacobian
272
22k
Making the Leap to Tech Lead
cromwellryan
123
8.5k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
273
13k
Put a Button on it: Removing Barriers to Going Fast.
kastner
58
3k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
119
38k
For a Future-Friendly Web
brad_frost
171
8.9k
How GitHub Uses GitHub to Build GitHub
holman
468
290k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
226
16k
Building a Modern Day E-commerce SEO Strategy
aleyda
16
6.4k
Raft: Consensus for Rubyists
vanstee
132
6.2k
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