Slide 1

Slide 1 text

JSONͷྺ࢙ @circled9 2018-07-13 #friday13json

Slide 2

Slide 2 text

JSONҎલ 1995-1999

Slide 3

Slide 3 text

1995೥ࠒͷͰ͖͝ͱ • Windows 95͕ൃച͞ΕΔ • ϥϦʔϖΠδͱαʔήΠϒϦϯ͕ݕࡧΤϯδ ϯΛ࡞Γ࢝ΊΔʢޙͷGoogleʣ • Amazon͕αʔϏε։࢝

Slide 4

Slide 4 text

JavaScriptͷ͸͡·Γ • 1995೥ʹNetscape Navigator 2.0Ͱ࣮૷͞ Εͨͷ͕࠷ॳ • 1996೥ʹInternet Explorer 3.0ʹ౥ࡌ͞Εͨ

Slide 5

Slide 5 text

JavaScriptͷඪ४Խ • 1997೥ʹEcma InternationalʹΑͬͯ࢓༷͕ ඪ४Խ͞Εͨ • ͜ͷඪ४ΛECMAScriptͱݺͿ • 1999೥ʹECMA-262ͷୈ3൛͕ެ։͞Εͨ • ͜ͷ࣌఺Ͱ͸·ͩJSON͸ͳ͍

Slide 6

Slide 6 text

Ecma International • ৘ใ௨৴γεςϜ෼໺ʹ͓͚Δࠃࡍతͳඪ४Խ ஂମ • ݩʑ͸European Computer Manufactures Associationͱ͍͏໊લͩͬͨ • 1994೥ʹࠃࡍతͳཱ৔Λ൓өͯ͜͠ͷ໊લʹ ͳͬͨ

Slide 7

Slide 7 text

TC39 • Technical Committee = ઐ໳ҕһձ • TC39͸ECMAScriptΛࡦఆ͍ͯ͠Δઐ໳ҕһ ձ

Slide 8

Slide 8 text

ECMAScript • Ecma Internationalͷ࡞ͬͨJavaScriptͷඪ४ • ECMA-262ͱ͍͏ن֨൪߸Ͱඪ४Խ͞Ε͍ͯ Δ

Slide 9

Slide 9 text

JSONͷ͸͡·Γ 2001-2002

Slide 10

Slide 10 text

2001೥ࠒͷͰ͖͝ͱ • Internet Explorer 6͕ϦϦʔε͞ΕΔ • Netscape 6͕ϦϦʔε͞ΕΔ • ͜ͷ࣌఺Ͱ͸Firefox΋Chrome͸·ͩͳ͍

Slide 11

Slide 11 text

JSONͷ͸͡·Γ • 2001೥ʹDouglas Crockfordࢯ͕ݟ໋͚ͭͯ ໊ͨ͠ͷ͕͸͡·ΓͱݴΘΕ͍ͯΔɻ • 2002೥ʹjson.orgͰ࢓༷͕ެ։͞Εͨɻ

Slide 12

Slide 12 text

Timeline +40/͕ൃݟ͞ΕΔ 2000 KTPOPSHͰ ࢓༷͕ެ։͞ΕΔ 2005 2010 2015

Slide 13

Slide 13 text

RFC 4627ͷൃද 2006

Slide 14

Slide 14 text

2006೥ࠒͷͰ͖͝ͱ • Ajaxͱ͍͏ݴ༿͕ੜΈग़͞ΕΔ • Web 2.0ͱ͍͏ݴ༿͕ྲྀߦΔ • ͍ΘΏΔୈೋ࣍ϒϥ΢βઓ૪͕࢝·Δ

Slide 15

Slide 15 text

IETF • ਖ਼໊ࣜশ͸ The Internet Engineering Task Force • ΠϯλʔωοτͰར༻͞ΕΔٕज़ͷඪ४Λࡦ ఆ͢Δ૊৫ • ࡦఆ͞Εͨඪ४࢓༷͸࠷ऴతʹ͸RFCͳͲͱ ͯ͠ൃߦ͞ΕΔ

Slide 16

Slide 16 text

RFC • Request for Commentsͷུ • IETFʹΑΔٕज़࢓༷ͷอଘɺެ։ܗࣜ • Not All RFCs are Standards (RFC 1796)

Slide 17

Slide 17 text

RFC 4627 • 2006೥7݄ʹެ։͞Εͨ࢓༷ • Informational • τοϓϨϕϧͰ͸ObjectͱArray͔͠ڐͯ͠ ͍ͳ͍

Slide 18

Slide 18 text

Timeline +40/͕ൃݟ͞ΕΔ 2000 KTPOPSHͰ ࢓༷͕ެ։͞ΕΔ 3'$͕ ެ։͞ΕΔ 2005 2010 2015

Slide 19

Slide 19 text

ECMAScript 5 2009

Slide 20

Slide 20 text

2009೥ࠒͷͰ͖͝ͱ • Windows 7͕ൃച͞ΕΔ • ೔ຊॳͷAndroidεϚϗɺHT-03A͕ൃച͞Ε Δ • Twitter͕೔ຊͰྲྀߦ͢Δ

Slide 21

Slide 21 text

ECMAScript 5 • 2011೥6݄ʹެ։͞Εͨ࢓༷ • JSONʹؔ͢Δهड़͕௥Ճ͞Εͨ • 4ͷ࢓༷ࡦఆʹࣦഊͨͨ͠Ίɺ10೥ͿΓͷ৽ ࢓༷ʹͳΔ

Slide 22

Slide 22 text

Timeline +40/͕ൃݟ͞ΕΔ 2000 KTPOPSHͰ ࢓༷͕ެ։͞ΕΔ 3'$͕ ެ։͞ΕΔ 2005 &$."4DSJQU͕ ެ։͞ΕΔ 2010 2015

Slide 23

Slide 23 text

ECMA-404 2013

Slide 24

Slide 24 text

2013೥ࠒͷͰ͖͝ͱ • IE11͕ϦϦʔε͞ΕΔ • εϚϗ͕Ψϥέʔͷར༻཰Λ௒͑Δ

Slide 25

Slide 25 text

ECMA-404 • 2013೥10݄ʹެ։͞Εͨ࢓༷ • ECMA-262ͷJSON෦෼Λ୯ಠͷ࢓༷ͱͯ͠ ·ͱΊΒΕͨ΋ͷ • ͜ͷޙʹग़ͨECMA-262, 6thͰ͸JSONʹؔ ͢Δهड़͸ͳ͘ͳ͍ͬͯΔ

Slide 26

Slide 26 text

Timeline +40/͕ൃݟ͞ΕΔ 2000 KTPOPSHͰ ࢓༷͕ެ։͞ΕΔ 3'$͕ ެ։͞ΕΔ 2005 &$."4DSJQU͕ ެ։͞ΕΔ 2010 2015 &$."͕ ެ։͞ΕΔ

Slide 27

Slide 27 text

RFC 7159 2014

Slide 28

Slide 28 text

2014೥ࠒͷͰ͖͝ͱ • HTML5͕קࠂ͞ΕΔ • ChromeͷγΣΞ͕τοϓʹ • ਓྨ͕IE6͔Βղ์͞Εͨ

Slide 29

Slide 29 text

RFC 7158 • ҰॠͰഇࢭ • ഇࢭͷཧ༝͸ɺ2014೥3݄ͱॻ͘͸ͣͩͬͨ ͷʹɺ2013೥3݄ͱॻ͍ͯ͠·͔ͬͨΒ

Slide 30

Slide 30 text

RFC 7159 • 2014೥3݄ʹެ։͞Εͨ࢓༷ • Proposed Standard • τοϓϨϕϧͰObjectͱArrayҎ֎ͷvalue΋ ѻ͑ΔΑ͏ʹͳͬͨ

Slide 31

Slide 31 text

Timeline +40/͕ൃݟ͞ΕΔ 2000 KTPOPSHͰ ࢓༷͕ެ։͞ΕΔ 3'$͕ ެ։͞ΕΔ 2005 &$."4DSJQU͕ ެ։͞ΕΔ 2010 2015 &$."͕ ެ։͞ΕΔ 3'$͕ ެ։͞ΕΔ

Slide 32

Slide 32 text

RFC8259ͱECMA-404 2nd 2017

Slide 33

Slide 33 text

RFC 8259 • 2017೥12݄ʹެ։͞Εͨ࢓༷ • Internet Standard • UTF-8Λ࢖͏΂͠ͱॻ͔Εͨ

Slide 34

Slide 34 text

ECMA-404 2nd • 2017೥12݄ʹެ։͞Εͨ࢓༷ • ஫ҙॻ͖͕૿͚͑ͨͩʁͱ͍͏ײ͕͢͡Δ

Slide 35

Slide 35 text

RFC 8259ͱECMA-404 2nd • ޓ͍ʹ࢓༷Λ߹ΘͤΔͥͬͯॻ͍ͯ͋Δ • ಛʹͲͪΒΛ࢖͏ͱ͔͸ߟ͑ͳ͍͍ͯ͘

Slide 36

Slide 36 text

Timeline +40/͕ൃݟ͞ΕΔ 2000 KTPOPSHͰ ࢓༷͕ެ։͞ΕΔ 3'$͕ ެ։͞ΕΔ 2005 &$."4DSJQU͕ ެ։͞ΕΔ 2010 2015 &$."͕ ެ։͞ΕΔ 3'$ɺ &$."OE͕ ެ։͞ΕΔ 3'$͕ ެ։͞ΕΔ

Slide 37

Slide 37 text

Appendix

Slide 38

Slide 38 text

Appendix • json.org • https://json.org/

Slide 39

Slide 39 text

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

Slide 40

Slide 40 text

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

Slide 41

Slide 41 text

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

Slide 42

Slide 42 text

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