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
80
CloudflareのAI関連の機能さわってみた
circled9
0
680
0.0.0.0 day
circled9
0
110
小数の丸め誤差の話
circled9
0
150
数値の文字列をパースしよう
circled9
0
240
🔥 Hono v4 やってみた
circled9
1
200
JetBrains AI Assistant を試してみた
circled9
1
540
Fresh
circled9
0
250
React Hooks 勉強会 vol.3
circled9
2
440
Other Decks in Programming
See All in Programming
The Past, Present, and Future of Enterprise Java with ASF in the Middle
ivargrimstad
0
160
旅行プランAIエージェント開発の裏側
ippo012
2
920
Android端末で実現するオンデバイスLLM 2025
masayukisuda
1
170
Testing Trophyは叫ばない
toms74209200
0
890
Cache Me If You Can
ryunen344
2
3k
Android 16 × Jetpack Composeで縦書きテキストエディタを作ろう / Vertical Text Editor with Compose on Android 16
cc4966
2
260
Rancher と Terraform
fufuhu
2
550
OSS開発者という働き方
andpad
5
1.7k
RDoc meets YARD
okuramasafumi
4
170
JSONataを使ってみよう Step Functionsが楽しくなる実践テクニック #devio2025
dafujii
1
600
今だからこそ入門する Server-Sent Events (SSE)
nearme_tech
PRO
3
240
もうちょっといいRubyプロファイラを作りたい (2025)
osyoyu
1
450
Featured
See All Featured
Scaling GitHub
holman
463
140k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
36
2.5k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.1k
Thoughts on Productivity
jonyablonski
70
4.8k
Practical Orchestrator
shlominoach
190
11k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
30
9.7k
It's Worth the Effort
3n
187
28k
A Tale of Four Properties
chriscoyier
160
23k
Why Our Code Smells
bkeepers
PRO
339
57k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
BBQ
matthewcrist
89
9.8k
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