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
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
circled9
July 13, 2018
Programming
7
5.5k
JSONの歴史
2018/07/13のJSONの日の発表資料です。
circled9
July 13, 2018
Tweet
Share
More Decks by circled9
See All by circled9
キースイッチ入門
circled9
0
97
CloudflareのAI関連の機能さわってみた
circled9
0
790
0.0.0.0 day
circled9
0
120
小数の丸め誤差の話
circled9
0
150
数値の文字列をパースしよう
circled9
0
260
🔥 Hono v4 やってみた
circled9
1
210
JetBrains AI Assistant を試してみた
circled9
1
570
Fresh
circled9
0
270
React Hooks 勉強会 vol.3
circled9
2
460
Other Decks in Programming
See All in Programming
副作用をどこに置くか問題:オブジェクト指向で整理する設計判断ツリー
koxya
1
610
Smart Handoff/Pickup ガイド - Claude Code セッション管理
yukiigarashi
0
150
CSC307 Lecture 07
javiergs
PRO
1
560
AWS re:Invent 2025参加 直前 Seattle-Tacoma Airport(SEA)におけるハードウェア紛失インシデントLT
tetutetu214
2
120
Oxlint JS plugins
kazupon
1
1k
プロダクトオーナーから見たSOC2 _SOC2ゆるミートアップ#2
kekekenta
0
220
Gemini for developers
meteatamel
0
100
登壇資料を作る時に意識していること #登壇資料_findy
konifar
4
1.6k
Raku Raku Notion 20260128
hareyakayuruyaka
0
360
2026年 エンジニアリング自己学習法
yumechi
0
140
LLM Observabilityによる 対話型音声AIアプリケーションの安定運用
gekko0114
2
440
Data-Centric Kaggle
isax1015
2
780
Featured
See All Featured
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
66
37k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.1k
Un-Boring Meetings
codingconduct
0
200
Paper Plane (Part 1)
katiecoart
PRO
0
4.3k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.1k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
290
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
430
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.6k
GraphQLの誤解/rethinking-graphql
sonatard
74
11k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.3k
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