$30 off During Our Annual Pro Sale. View Details »

Titanium JSON Story

Titanium JSON Story

Titanium / Objective-C JSON, Object processing experiment

Ryutaro Miyashita

October 09, 2013
Tweet

More Decks by Ryutaro Miyashita

Other Decks in Programming

Transcript

  1. {
    }
    +40/෺ޠ
    5JUBOJVN+40/4UPSZ
    "desc":
    "title":
    5JUBOJVN΋͘΋͘ձ5PLZP
    JO0QFO/FUXPSL4QBDF
    ͋ͱϞδϡʔϧ

    View Slide

  2. 3ZVUBSP.JZBTIJUB
    BLBSZVHPP

    $IBU8PSL
     SZVHPP@
     SZVHPP
    5JUBOJVN΋͘΋͘ձ5PLZP
    JO0QFO/FUXPSL4QBDF

    View Slide

  3. 5JUBOJVN΋͘΋͘ձ5PLZP
    JO0QFO/FUXPSL4QBDF
    +40/
    +BWB4DSJQU0CKFDU/PUBUJPO

    View Slide

  4. {
    "glossary": {
    "title": "example glossary",
    "GlossDiv": {
    "title": "S",
    "GlossList": {
    "GlossEntry": {
    "ID": "SGML",
    "SortAs": "SGML"
    "GlossTerm": "St
    "Acronym": "SGML
    "Abbrev": "ISO 8
    "GlossDef": {
    +40/
    KTPOPSHFYBNQMFIUNM

    View Slide

  5. 4JNQMF -JHIU &BTZ
    γϯϓϧͰܰͯ͘࢖͍΍͍͢
    5JUBOJVN΋͘΋͘ձ5PLZP
    JO0QFO/FUXPSL4QBDF

    View Slide

  6. 5JUBOJVN+40/
    5JUBOJVNͱ+40/
    5JUBOJVN΋͘΋͘ձ5PLZP
    JO0QFO/FUXPSL4QBDF

    View Slide

  7. +40/QBSTF
    5JUBOJVN΋͘΋͘ձ5PLZP
    JO0QFO/FUXPSL4QBDF
    +40/TUSJOHJGZ

    View Slide

  8. +40/QBSTF
    5JUBOJVN΋͘΋͘ձ5PLZP
    JO0QFO/FUXPSL4QBDF
    จࣈྻΛΦϒδΣΫτʹ͢Δ

    View Slide

  9. ΦϒδΣΫτΛจࣈྻʹ͢Δ
    5JUBOJVN΋͘΋͘ձ5PLZP
    JO0QFO/FUXPSL4QBDF
    +40/TUSJOHJGZ

    View Slide

  10. 5JUBOJVN΋͘΋͘ձ5PLZP
    JO0QFO/FUXPSL4QBDF
    ศར

    View Slide

  11. 5JUBOJVN΋͘΋͘ձ5PLZP
    JO0QFO/FUXPSL4QBDF
    0CKFDUJWF$+40/
    ωΠςΟϒ։ൃͱ+40/

    View Slide

  12. 5JUBOJVN΋͘΋͘ձ5PLZP
    JO0QFO/FUXPSL4QBDF
    /4+40/4FSJBMJ[BUJPO
    KTPOGSBNFXPSL
    +40/,JU
    BLB4#+TPO

    View Slide

  13. 5JUBOJVN΋͘΋͘ձ5PLZP
    JO0QFO/FUXPSL4QBDF
    ωΠςΟϒ଎͍ʁ
    5JUBOJVN0CKFDUJWF$1FSGPSNBODF

    View Slide

  14. 5JUBOJVN΋͘΋͘ձ5PLZP
    JO0QFO/FUXPSL4QBDF
    ͔֬ΊͯΈͨ
    5FTU

    View Slide

  15. 5JUBOJVN΋͘΋͘ձ5PLZP
    JO0QFO/FUXPSL4QBDF
    HJUIVCDPNSZVHPP5J"MUFSOBUF+40/

    View Slide

  16. 5JUBOJVN΋͘΋͘ձ5PLZP
    JO0QFO/FUXPSL4QBDF
    5JUBOJVN 0CKFDUJWF$

    View Slide

  17. 5JUBOJVN΋͘΋͘ձ5PLZP
    JO0QFO/FUXPSL4QBDF
    5JUBOJVN
    +40/TUSJOHJGZ NT
    +40/QBSTF NT
    /4+40/4FSJBMJ[BUJPO NTNT
    +40/,JU NTNT
    4#+TPO NTNT
    UJNFTTUSJOHJGZBOEQBSTF

    View Slide

  18. 5JUBOJVN΋͘΋͘ձ5PLZP
    JO0QFO/FUXPSL4QBDF
    0CKFDUJWF$
    /4+40/TUSJOHJGZ
    NT
    /4+40/QBSTF
    NT
    +40/,JU NTNT
    NTNT
    UJNFTTUSJOHJGZBOEQBSTF
    4#+TPO

    View Slide

  19. 5JUBOJVN΋͘΋͘ձ5PLZP
    JO0QFO/FUXPSL4QBDF
    /4+40/TUSJOHJGZ
    NT
    /4+40/QBSTF
    NT
    +40/TUSJOHJGZ NT
    +40/QBSTF NT
    5J
    0CK$
    UJNFTTUSJOHJGZBOEQBSTF

    View Slide

  20. 5JUBOJVN΋͘΋͘ձ5PLZP
    JO0QFO/FUXPSL4QBDF
    5Jͷ+40/଎͍ʂ
    5JUBOJVN+40/1SPDFTTJOHJT'BTU

    View Slide

  21. 5JUBOJVN΋͘΋͘ձ5PLZP
    JO0QFO/FUXPSL4QBDF
    ͭؾʹͳͬͨ
    *XPSSJFEBCPVU

    View Slide

  22. 5JUBOJVN΋͘΋͘ձ5PLZP
    JO0QFO/FUXPSL4QBDF
    for  (var  i  =  0;  i  <  1000;  i++)  {
       //  Method  Call  Bottleneck
    }
    ϝιουݺͼग़͠ͷϘτϧωοΫ

    View Slide

  23. 5JUBOJVN΋͘΋͘ձ5PLZP
    JO0QFO/FUXPSL4QBDF
    {
           "1":  "abcde",
           "2":  "abcde",
           "3":  "abcde",
           "4":  "abcde",
           ...
           "1000":  "abcde"
    }
    GPSJO
    +4
    0CKFDUJWF$
    'BTU
    &OVNFSBUJPO
    ʷ

    View Slide

  24. 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];
       }
    }

    View Slide

  25. 5JUBOJVN΋͘΋͘ձ5PLZP
    JO0QFO/FUXPSL4QBDF
    'BTU
    &OVNFSBUJPO
    NT
    NT
    GPSJO
    NT
    NT
    +4
    0CK$
    ʷ

    ʷ

    ʷ

    ʷ

    View Slide

  26. Ϟδϡʔϧݺͼग़͠
    ஗͍ʁ
    .PEVMFNFUIPEDBMMJTTMPX
    ΋͔ͯ͠͠
    5JUBOJVN΋͘΋͘ձ5PLZP
    JO0QFO/FUXPSL4QBDF

    View Slide

  27. ࠓ೔ݴ͍͔ͨͬͨࣄ
    JOPUIFSXPSET
    5JUBOJVN΋͘΋͘ձ5PLZP
    JO0QFO/FUXPSL4QBDF

    View Slide

  28. 5Jͷ+40/
    ଎͍
    Ϟδϡʔϧͷϝιουݺͼग़͠
    ஗͍ ͔΋

    5JUBOJVN΋͘΋͘ձ5PLZP
    JO0QFO/FUXPSL4QBDF
    ҆৺ͯ͠࢖͓͏
    ϧʔϓதͰ͸஫ҙ

    View Slide

  29. 5JUBOJVN΋͘΋͘ձ5PLZP
    JO0QFO/FUXPSL4QBDF
    CODESTRONG!
    ͓͠·͍

    View Slide