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
circled9
July 13, 2018
Programming
7
5.4k
JSONの歴史
2018/07/13のJSONの日の発表資料です。
circled9
July 13, 2018
Tweet
Share
More Decks by circled9
See All by circled9
キースイッチ入門
circled9
0
74
CloudflareのAI関連の機能さわってみた
circled9
0
590
0.0.0.0 day
circled9
0
100
小数の丸め誤差の話
circled9
0
140
数値の文字列をパースしよう
circled9
0
220
🔥 Hono v4 やってみた
circled9
1
190
JetBrains AI Assistant を試してみた
circled9
1
520
Fresh
circled9
0
240
React Hooks 勉強会 vol.3
circled9
2
440
Other Decks in Programming
See All in Programming
CursorはMCPを使った方が良いぞ
taigakono
1
170
Team operations that are not burdened by SRE
kazatohiei
1
190
都市をデータで見るってこういうこと PLATEAU属性情報入門
nokonoko1203
1
570
datadog dash 2025 LLM observability for reliability and stability
ivry_presentationmaterials
0
110
git worktree × Claude Code × MCP ~生成AI時代の並列開発フロー~
hisuzuya
1
450
Composerが「依存解決」のためにどんな工夫をしているか #phpcon
o0h
PRO
1
210
『自分のデータだけ見せたい!』を叶える──Laravel × Casbin で複雑権限をスッキリ解きほぐす 25 分
akitotsukahara
1
510
Cursor AI Agentと伴走する アプリケーションの高速リプレイス
daisuketakeda
1
130
イベントストーミング図からコードへの変換手順 / Procedure for Converting Event Storming Diagrams to Code
nrslib
1
330
LT 2025-06-30: プロダクトエンジニアの役割
yamamotok
0
280
#kanrk08 / 公開版 PicoRubyとマイコンでの自作トレーニング計測装置を用いたワークアウトの理想と現実
bash0c7
1
340
ReadMoreTextView
fornewid
1
470
Featured
See All Featured
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Speed Design
sergeychernyshev
32
1k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
What's in a price? How to price your products and services
michaelherold
246
12k
Git: the NoSQL Database
bkeepers
PRO
430
65k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
GitHub's CSS Performance
jonrohan
1031
460k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
Stop Working from a Prison Cell
hatefulcrawdad
270
20k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.2k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
44
2.4k
Transcript
JSONͷྺ࢙ @circled9 2018-07-13 #friday13json
JSONҎલ 1995-1999
1995ࠒͷͰ͖͝ͱ • Windows 95͕ൃച͞ΕΔ • ϥϦʔϖΠδͱαʔήΠϒϦϯ͕ݕࡧΤϯδ ϯΛ࡞Γ࢝ΊΔʢޙͷGoogleʣ • Amazon͕αʔϏε։࢝
JavaScriptͷ͡·Γ • 1995ʹNetscape Navigator 2.0Ͱ࣮͞ Εͨͷ͕࠷ॳ • 1996ʹInternet Explorer 3.0ʹࡌ͞Εͨ
JavaScriptͷඪ४Խ • 1997ʹEcma InternationalʹΑ༷͕ͬͯ ඪ४Խ͞Εͨ • ͜ͷඪ४ΛECMAScriptͱݺͿ • 1999ʹECMA-262ͷୈ3൛͕ެ։͞Εͨ •
͜ͷ࣌Ͱ·ͩJSONͳ͍
Ecma International • ใ௨৴γεςϜʹ͓͚Δࠃࡍతͳඪ४Խ ஂମ • ݩʑEuropean Computer Manufactures Associationͱ͍͏໊લͩͬͨ
• 1994ʹࠃࡍతͳཱΛөͯ͜͠ͷ໊લʹ ͳͬͨ
TC39 • Technical Committee = ઐҕһձ • TC39ECMAScriptΛࡦఆ͍ͯ͠Δઐҕһ ձ
ECMAScript • Ecma Internationalͷ࡞ͬͨJavaScriptͷඪ४ • ECMA-262ͱ͍͏ن֨൪߸Ͱඪ४Խ͞Ε͍ͯ Δ
JSONͷ͡·Γ 2001-2002
2001ࠒͷͰ͖͝ͱ • Internet Explorer 6͕ϦϦʔε͞ΕΔ • Netscape 6͕ϦϦʔε͞ΕΔ • ͜ͷ࣌ͰFirefoxChrome·ͩͳ͍
JSONͷ͡·Γ • 2001ʹDouglas Crockfordࢯ͕ݟ໋͚ͭͯ ໊ͨ͠ͷ͕͡·ΓͱݴΘΕ͍ͯΔɻ • 2002ʹjson.orgͰ༷͕ެ։͞Εͨɻ
Timeline +40/͕ൃݟ͞ΕΔ 2000 KTPOPSHͰ ༷͕ެ։͞ΕΔ 2005 2010 2015
RFC 4627ͷൃද 2006
2006ࠒͷͰ͖͝ͱ • Ajaxͱ͍͏ݴ༿͕ੜΈग़͞ΕΔ • Web 2.0ͱ͍͏ݴ༿͕ྲྀߦΔ • ͍ΘΏΔୈೋ࣍ϒϥβઓ૪͕࢝·Δ
IETF • ਖ਼໊ࣜশ The Internet Engineering Task Force • ΠϯλʔωοτͰར༻͞ΕΔٕज़ͷඪ४Λࡦ
ఆ͢Δ৫ • ࡦఆ͞Εͨඪ४༷࠷ऴతʹRFCͳͲͱ ͯ͠ൃߦ͞ΕΔ
RFC • Request for Commentsͷུ • IETFʹΑΔٕज़༷ͷอଘɺެ։ܗࣜ • Not All
RFCs are Standards (RFC 1796)
RFC 4627 • 20067݄ʹެ։͞Ε༷ͨ • Informational • τοϓϨϕϧͰObjectͱArray͔͠ڐͯ͠ ͍ͳ͍
Timeline +40/͕ൃݟ͞ΕΔ 2000 KTPOPSHͰ ༷͕ެ։͞ΕΔ 3'$͕ ެ։͞ΕΔ 2005 2010 2015
ECMAScript 5 2009
2009ࠒͷͰ͖͝ͱ • Windows 7͕ൃച͞ΕΔ • ຊॳͷAndroidεϚϗɺHT-03A͕ൃച͞Ε Δ • Twitter͕ຊͰྲྀߦ͢Δ
ECMAScript 5 • 20116݄ʹެ։͞Ε༷ͨ • JSONʹؔ͢Δهड़͕Ճ͞Εͨ • 4ͷ༷ࡦఆʹࣦഊͨͨ͠Ίɺ10ͿΓͷ৽ ༷ʹͳΔ
Timeline +40/͕ൃݟ͞ΕΔ 2000 KTPOPSHͰ ༷͕ެ։͞ΕΔ 3'$͕ ެ։͞ΕΔ 2005 &$."4DSJQU͕ ެ։͞ΕΔ
2010 2015
ECMA-404 2013
2013ࠒͷͰ͖͝ͱ • IE11͕ϦϦʔε͞ΕΔ • εϚϗ͕Ψϥέʔͷར༻Λ͑Δ
ECMA-404 • 201310݄ʹެ։͞Ε༷ͨ • ECMA-262ͷJSON෦Λ୯ಠͷ༷ͱͯ͠ ·ͱΊΒΕͨͷ • ͜ͷޙʹग़ͨECMA-262, 6thͰJSONʹؔ ͢Δهड़ͳ͘ͳ͍ͬͯΔ
Timeline +40/͕ൃݟ͞ΕΔ 2000 KTPOPSHͰ ༷͕ެ։͞ΕΔ 3'$͕ ެ։͞ΕΔ 2005 &$."4DSJQU͕ ެ։͞ΕΔ
2010 2015 &$."͕ ެ։͞ΕΔ
RFC 7159 2014
2014ࠒͷͰ͖͝ͱ • HTML5͕קࠂ͞ΕΔ • ChromeͷγΣΞ͕τοϓʹ • ਓྨ͕IE6͔Βղ์͞Εͨ
RFC 7158 • ҰॠͰഇࢭ • ഇࢭͷཧ༝ɺ20143݄ͱॻͣͩͬͨ͘ ͷʹɺ20133݄ͱॻ͍ͯ͠·͔ͬͨΒ
RFC 7159 • 20143݄ʹެ։͞Ε༷ͨ • Proposed Standard • τοϓϨϕϧͰObjectͱArrayҎ֎ͷvalue ѻ͑ΔΑ͏ʹͳͬͨ
Timeline +40/͕ൃݟ͞ΕΔ 2000 KTPOPSHͰ ༷͕ެ։͞ΕΔ 3'$͕ ެ։͞ΕΔ 2005 &$."4DSJQU͕ ެ։͞ΕΔ
2010 2015 &$."͕ ެ։͞ΕΔ 3'$͕ ެ։͞ΕΔ
RFC8259ͱECMA-404 2nd 2017
RFC 8259 • 201712݄ʹެ։͞Ε༷ͨ • Internet Standard • UTF-8Λ͏͠ͱॻ͔Εͨ
ECMA-404 2nd • 201712݄ʹެ։͞Ε༷ͨ • ҙॻ͖͕૿͚͑ͨͩʁͱ͍͏ײ͕͢͡Δ
RFC 8259ͱECMA-404 2nd • ޓ͍ʹ༷Λ߹ΘͤΔͥͬͯॻ͍ͯ͋Δ • ಛʹͲͪΒΛ͏ͱ͔ߟ͑ͳ͍͍ͯ͘
Timeline +40/͕ൃݟ͞ΕΔ 2000 KTPOPSHͰ ༷͕ެ։͞ΕΔ 3'$͕ ެ։͞ΕΔ 2005 &$."4DSJQU͕ ެ։͞ΕΔ
2010 2015 &$."͕ ެ։͞ΕΔ 3'$ɺ &$."OE͕ ެ։͞ΕΔ 3'$͕ ެ։͞ΕΔ
Appendix
Appendix • json.org • https://json.org/
Appendix • ECMAScript • https://ja.wikipedia.org/wiki/ECMAScript • Standard ECMA-262 • https://www.ecma-international.org/publications/standards/
Ecma-262.htm • Standard ECMA-404 • https://www.ecma-international.org/publications/standards/ Ecma-404.htm
Appendix • Internet Engineering Task Force • https://ja.wikipedia.org/wiki/ Internet_Engineering_Task_Force •
Request for Comments • https://ja.wikipedia.org/wiki/Request_for_Comments • RFC 4627 • https://tools.ietf.org/html/rfc4627
Appendix • RFC 7158 • https://tools.ietf.org/html/rfc7158 • RFC 7159 •
https://tools.ietf.org/html/rfc7159 • RFC 8259 • https://tools.ietf.org/html/rfc8259
Appendix • JSONɺECMAඪ४ͱͳΔɻ༷จॻʮECMA-404ʯ͕ެ։ ʵ Publickey • https://www.publickey1.jp/blog/13/ jsonecmaecma-404.html • ࣄ্࣮࠷ޙͷJSON༷ʮRFC
8259ʯͱʮECMA-404 2nd Editonʯެ։ɻUTF-8Τϯίʔυඞਢʹ ʵ Publickey • https://www.publickey1.jp/blog/17/ jsonrfc_8259ecma-404_2nd_editonutf-8.html