Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
改行区切りのJSON
Matsui Masashi
October 14, 2017
Technology
0
610
改行区切りのJSON
JSON日の金曜日@新潟 9週目で発表した資料です。
Matsui Masashi
October 14, 2017
Tweet
Share
More Decks by Matsui Masashi
See All by Matsui Masashi
React Hooks 勉強会 vol.3
circled9
2
220
JSON.stringify()
circled9
2
280
HTML
circled9
2
780
prefers-color-schemaの話
circled9
0
470
Bundle Transpile Rock'n'Roll
circled9
0
910
Hello React hooks
circled9
0
580
細かくて伝わらないmacの小技選手権
circled9
0
650
Nature Remoの紹介
circled9
0
350
JSONのLS/PS問題
circled9
2
250
Other Decks in Technology
See All in Technology
MRTK3 - DataBinding and Theming 入門
futo23
0
210
Introduction to MLOps
asei
8
1.3k
oakのミドルウェアを書くときの技のらしきもの
toranoana
0
140
UIKitのアップデート #WWDC22
akatsuki174
4
360
Apple M1 CPUの脆弱性「PACMAN」について解説する
kuzushiki
0
110
プログラマがオブジェクト指向しても幸せになれない理由
shirayanagiryuji
0
170
Power Virtual Agentsのハジメ
miyakemito
1
130
What's Data Lake ? Azure Data Lake best practice
ryomaru0825
2
760
SlackBotで あらゆる業務を自動化。問い合わせ〜DevOpsまで #CODT2022
kogatakanori
0
1k
DeepL の用語集が(いつのまにか)日本語に対応してたので試してみた
irokawah0
0
180
約6年間運用したシステムをKubernetesに完全移行するまで/Kubernetes Novice Tokyo
isaoshimizu
6
970
データ分析基盤のはじめかた
chanyou0311
0
130
Featured
See All Featured
Designing on Purpose - Digital PM Summit 2013
jponch
106
5.6k
How GitHub (no longer) Works
holman
296
140k
Thoughts on Productivity
jonyablonski
43
2.3k
Intergalactic Javascript Robots from Outer Space
tanoku
261
25k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
212
20k
Fantastic passwords and where to find them - at NoRuKo
philnash
27
1.5k
GraphQLの誤解/rethinking-graphql
sonatard
28
6.6k
Practical Orchestrator
shlominoach
178
8.6k
VelocityConf: Rendering Performance Case Studies
addyosmani
316
22k
Typedesign – Prime Four
hannesfritz
34
1.4k
Mobile First: as difficult as doing things right
swwweet
213
7.5k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
39
13k
Transcript
վߦ۠ΓͷJSON @circled9 2017-10-13 #friday13json
ࣗݾհ.json { "name": "Matsui Masashi", "twitter": ["@circled9", "@ma_2_i"], "language": ["javascript",
"ruby"], }
Agenda • ͡Ίʹ • େମڞ௨ͯ͠Δ͜ͱ • ֤ϑΥʔϚοτͷհ • ·ͱΊ
͡Ίʹ
վߦ۠ΓͷJSON • վߦΛ۠Γจࣈͱͯ͠ѻ͏ϑΥʔϚοτ • ֤ߦvalidͳJSONͷ͕ॻ͔Ε͍ͯΔ • վߦ͠ͳ͍ͷͰɺՄಡੑ͋·Γॏࢹ͍ͯ͠ ͳ͍
վߦ۠ΓͷJSONͷαϯϓϧ {"some":"thing"} {"foo":17,"bar":false,"quux":true} {"may":{"include":"nested","objects":["and","arrays"]}}
ͳͥվߦͰ۠Δͷ͔ • JSONΛύʔε͢ΔʹɺϑΝΠϧͷ࠷ޙ·Ͱ ಡΈࠐ·ͳ͍ͱ͍͚ͳ͍ • վߦจࣈͰ۠Δ͜ͱʹΑͬͯɺϑΝΠϧΛ ෦తʹύʔεͰ͖ΔΑ͏ʹͳΔ
ϝϦοτ • ฒߦॲཧͰͷಡΈॻ͖͕͘͢͠ͳΔ • ֤ߦࠓ·ͰͷJSONͱมΘΒͳ͍ͷͰɺطଘ ͷࢿ࢈͕ੜ͔͍͢͠ • CSV/TSVͱൺֱ͢Δͱɺ֤ߦ͕දݱͰ͖Δ ༰͕ॊೈʹͳΔ
େମڞ௨ͯ͠Δ͜ͱ
ڞ௨͢Δܾ·Γ͝ͱ • ۠Γจࣈվߦจࣈ • ֤ߦվߦΛؚ·ͳ͍validͳJSONͷ • ΤϯίʔσΟϯάUTF-8
վߦจࣈ • LF (\n) ʹ͓͚ͯ͠ແ • CR+LF (\r\n) Ͱͳ͍ •
CR (\r) ͩͱ·͍ͣ͜ͱ͕͋Γͦ͏ • Mac OS 9ͳΜͯී௨ͬͯ·ͤΜͶ
վߦจࣈ • CRΛ۠Γจࣈͱͯ͠ѻ͏͔ɺ֤ϑΥʔϚο τʹΑͬͯҟͳΔ • ͔͠͠ɺҎԼͷཧ༝͔ΒCR+LFͰ࣮࣭ͳ͍ • ۭߦແࢹ͢Δͷ͕௨ྫ • JSONͷύʔε࣌ʹۭനจࣈআڈ͞ΕΔ
֤ϑΥʔϚοτͷհ
֤ϑΥʔϚοτͷհ • NDJSON • LDJSON • JSON Lines • NDJ
NDJSON • MediaType application/x-ndjson • ֦ுࢠ .ndjson • CRվߦͱͯ͠ݟͳ͢
LDJSON • NDJSONͷաڈͷݺͼ໊ • MediaType application/x-ldjson • ֦ுࢠ .ldjson
JSON Lines • MediaType ಛʹݴٴͳ͠ • ֦ுࢠ .jsonl • ѹॖͯ͠
.jsonl.gz .jsonl.bz2 ͱͯ͠৴ ͢Δ͜ͱਪͯ͠Δ • CRվߦͱͯ͠ݟͳ͞ͳ͍
NDJ • MediaType ಛʹݴٴͳ͠ • ֦ுࢠ .ndj • ࠷ॳͷ1ߦʹ //
Ͱίϝϯτ͕ॻ͚Δ • CRվߦͱͯ͠ݟͳ͞ͳ͍
·ͱΊ
·ͱΊ • վߦ۠ΓͷJSONͩͱฒߦॲཧͱ͔͕ḿΔ • վߦ۠ΓͷJSON͍͔ͭ͘ϑΥʔϚοτ͕ ͋Δ • ॻ͖ํͷ༷େମಉ͡
[EOF]
ࢀߟURL • NDJSON • http://specs.okfnlabs.org/ndjson/ • LDJSON • https://github.com/ndjson/ndjson-spec/commit/ c658c26ba15bea718228b5a3d54f0d4db22ec0ba
• JSON Lines • http://jsonlines.org/ • NDJ • http://jimbojw.com/t/index.php?title=Newline_delimited_JSON