Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Titanium JSON Story
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Ryutaro Miyashita
October 09, 2013
Programming
410
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Titanium JSON Story
Titanium / Objective-C JSON, Object processing experiment
Ryutaro Miyashita
October 09, 2013
More Decks by Ryutaro Miyashita
See All by Ryutaro Miyashita
Java で書かれた Android アプリを Kotlin で書き直すまでの話 / Talk of rewrite Android app for Java to Kotlin
ryugoo
0
1.9k
開発 4 年目のアプリへの Kotlin 導入
ryugoo
0
480
チーム開発と Android アプリの構成
ryugoo
5
1.3k
開発 4 年目のアプリへの Kotlin 導入
ryugoo
1
2.8k
Either で想定内のエラーと想定外のエラーを別ものにしたい!
ryugoo
2
1.8k
全て S になる -RxJava と LWS を持ち込む楽しさ-
ryugoo
4
810
Transition at RxJava 1.x to 2.x
ryugoo
0
590
Kotlin さんと誕生日が近いだけの男の話
ryugoo
2
580
Android エンジニアになって 2 年の学び
ryugoo
1
2.8k
Other Decks in Programming
See All in Programming
TanStack Vue Query と Pinia Colada から学ぶ非同期状態の型設計
aoshi
0
620
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
580
Vue.jsで作る空間解析アプリとCapacitorプラグインのData Bridge
hal_spidernight
1
160
Kawaiicon: Kubernetes, it's no longer cool, but let's secure it anyway!
barnbarn
0
100
graphql-ruby を Spinel で速くしようとした話
mtsmfm
0
140
Snowflake Openflow Connector利用の勘所 / 20261024developersio2026tokyo-snowflake-openflow
kasacchiful
PRO
0
290
社内AIエージェント「Askワンバン」における コストチューニングの取り組み
t0yohei
0
150
선언형 햅틱 라이브러리 진동을 소개합니다
l2hyunwoo
1
280
GraphQL の onError と Nullability のこれから
quramy
0
210
学びを記事・スライド・Xへ高速展開する― AI-assisted Learning Loopで回すコンテンツ生成術
ochtum
0
190
あなたの await、OS まで届いてる? strace で覗く JavaScript の非同期
hasutosasaki
1
2.2k
Optunaを作ったときにやりたかったこと、その後 (2026/10/16, Optuna Meetup #3)
iwiwi
4
1.5k
Featured
See All Featured
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Skip the Path - Find Your Career Trail
mkilby
1
280
BBQ
matthewcrist
90
10k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
290
brightonSEO & MeasureFest 2025 - Winning Strategies for Black Friday CRO & PPC - Christian Goodrich
cargoodrich
3
890
The untapped power of vector embeddings
frankvandijk
2
2k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.4k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
610
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
How STYLIGHT went responsive
nonsquared
100
6.4k
How Software Deployment tools have changed in the past 20 years
geshan
2
35k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
33
5.6k
Transcript
{ } +40/ޠ 5JUBOJVN+40/4UPSZ "desc": "title": 5JUBOJVN͘͘ձ5PLZP JO0QFO/FUXPSL4QBDF ͋ͱϞδϡʔϧ
3ZVUBSP.JZBTIJUB BLBSZVHPP $IBU8PSL SZVHPP@ SZVHPP 5JUBOJVN͘͘ձ5PLZP JO0QFO/FUXPSL4QBDF
5JUBOJVN͘͘ձ5PLZP JO0QFO/FUXPSL4QBDF +40/ +BWB4DSJQU0CKFDU/PUBUJPO
{ "glossary": { "title": "example glossary", "GlossDiv": { "title": "S",
"GlossList": { "GlossEntry": { "ID": "SGML", "SortAs": "SGML" "GlossTerm": "St "Acronym": "SGML "Abbrev": "ISO 8 "GlossDef": { +40/ KTPOPSHFYBNQMFIUNM
4JNQMF -JHIU &BTZ γϯϓϧͰ͍͍ܰͯ͘͢ 5JUBOJVN͘͘ձ5PLZP JO0QFO/FUXPSL4QBDF
5JUBOJVN+40/ 5JUBOJVNͱ+40/ 5JUBOJVN͘͘ձ5PLZP JO0QFO/FUXPSL4QBDF
+40/QBSTF 5JUBOJVN͘͘ձ5PLZP JO0QFO/FUXPSL4QBDF +40/TUSJOHJGZ
+40/QBSTF 5JUBOJVN͘͘ձ5PLZP JO0QFO/FUXPSL4QBDF จࣈྻΛΦϒδΣΫτʹ͢Δ
ΦϒδΣΫτΛจࣈྻʹ͢Δ 5JUBOJVN͘͘ձ5PLZP JO0QFO/FUXPSL4QBDF +40/TUSJOHJGZ
5JUBOJVN͘͘ձ5PLZP JO0QFO/FUXPSL4QBDF ศར
5JUBOJVN͘͘ձ5PLZP JO0QFO/FUXPSL4QBDF 0CKFDUJWF$+40/ ωΠςΟϒ։ൃͱ+40/
5JUBOJVN͘͘ձ5PLZP JO0QFO/FUXPSL4QBDF /4+40/4FSJBMJ[BUJPO KTPOGSBNFXPSL +40/,JU BLB4#+TPO
5JUBOJVN͘͘ձ5PLZP JO0QFO/FUXPSL4QBDF ωΠςΟϒ͍ʁ 5JUBOJVN0CKFDUJWF$1FSGPSNBODF
5JUBOJVN͘͘ձ5PLZP JO0QFO/FUXPSL4QBDF ͔֬ΊͯΈͨ 5FTU
5JUBOJVN͘͘ձ5PLZP JO0QFO/FUXPSL4QBDF HJUIVCDPNSZVHPP5J"MUFSOBUF+40/
5JUBOJVN͘͘ձ5PLZP JO0QFO/FUXPSL4QBDF 5JUBOJVN 0CKFDUJWF$
5JUBOJVN͘͘ձ5PLZP JO0QFO/FUXPSL4QBDF 5JUBOJVN +40/TUSJOHJGZ NT +40/QBSTF NT /4+40/4FSJBMJ[BUJPO NTNT +40/,JU
NTNT 4#+TPO NTNT UJNFTTUSJOHJGZBOEQBSTF
5JUBOJVN͘͘ձ5PLZP JO0QFO/FUXPSL4QBDF 0CKFDUJWF$ /4+40/TUSJOHJGZ NT /4+40/QBSTF NT +40/,JU NTNT NTNT
UJNFTTUSJOHJGZBOEQBSTF 4#+TPO
5JUBOJVN͘͘ձ5PLZP JO0QFO/FUXPSL4QBDF /4+40/TUSJOHJGZ NT /4+40/QBSTF NT +40/TUSJOHJGZ NT +40/QBSTF NT
5J 0CK$ UJNFTTUSJOHJGZBOEQBSTF
5JUBOJVN͘͘ձ5PLZP JO0QFO/FUXPSL4QBDF 5Jͷ+40/͍ʂ 5JUBOJVN+40/1SPDFTTJOHJT'BTU
5JUBOJVN͘͘ձ5PLZP JO0QFO/FUXPSL4QBDF ͭؾʹͳͬͨ *XPSSJFEBCPVU
5JUBOJVN͘͘ձ5PLZP JO0QFO/FUXPSL4QBDF for (var i = 0; i < 1000;
i++) { // Method Call Bottleneck } ϝιουݺͼग़͠ͷϘτϧωοΫ
5JUBOJVN͘͘ձ5PLZP JO0QFO/FUXPSL4QBDF { "1": "abcde",
"2": "abcde", "3": "abcde", "4": "abcde", ... "1000": "abcde" } GPSJO +4 0CKFDUJWF$ 'BTU &OVNFSBUJPO ʷ
5JUBOJVN͘͘ձ5PLZP JO0QFO/FUXPSL4QBDF GPSJO +4 0CKFDUJWF$ 'BTU &OVNFSBUJPO for (var key
in obj) { if (obj.hasOwnProperty(key)) { obj[key]; } } -‐(void)dictEnumerator:(id)args { ENSURE_SINGLE_ARG(args, NSDictionary); for (id i in [args keyEnumerator]) { args[i]; } }
5JUBOJVN͘͘ձ5PLZP JO0QFO/FUXPSL4QBDF 'BTU &OVNFSBUJPO NT NT GPSJO NT NT +4
0CK$ ʷ ʷ ʷ ʷ
Ϟδϡʔϧݺͼग़͠ ͍ʁ .PEVMFNFUIPEDBMMJTTMPX ͔ͯ͠͠ 5JUBOJVN͘͘ձ5PLZP JO0QFO/FUXPSL4QBDF
ࠓݴ͍͔ͨͬͨࣄ JOPUIFSXPSET 5JUBOJVN͘͘ձ5PLZP JO0QFO/FUXPSL4QBDF
5Jͷ+40/ ͍ Ϟδϡʔϧͷϝιουݺͼग़͠ ͍ ͔ 5JUBOJVN͘͘ձ5PLZP JO0QFO/FUXPSL4QBDF ҆৺͓ͯ͠͏ ϧʔϓதͰҙ
5JUBOJVN͘͘ձ5PLZP JO0QFO/FUXPSL4QBDF CODESTRONG! ͓͠·͍