Samouczek dotyczący analizowania JSON w iPhone / iOS [zamknięty]

103

W ramach nauki chcę stworzyć aplikację na iPhone'a, która wywołuje serwer sieciowy / usługę sieciową, pobiera odpowiedź JSON i używa tej odpowiedzi do zapełniania wierszy a UITableView(zakładając, że konwertuje JSON na NSArraypierwszy).

Czy ktoś wie o czymś, co mogłoby się przydać?

Casey Flynn
źródło

Odpowiedzi:

164

Pokochasz te ramy .

I pokochasz to narzędzie .

Aby dowiedzieć się więcej o JSON, możesz polubić ten zasób .

I prawdopodobnie spodoba ci się ten samouczek .

Todd Hopkinson
źródło
Masz całkowitą rację co do tego, że ja też to kocham @icnivad, wielkie dzięki za kierownictwo, jest to bardzo przydatne.
Casey Flynn
. Samouczek, o którym wspomniałeś, wymaga pliku DMG, ale nie mogłem znaleźć żadnego pliku DMG na Link, o którym wspomniałeś dla frameworka. ten link kieruje na github i zawiera plik zip z różnymi klasami i przykładami, ale nie rozumiem, którą część muszę wstawić do mojego projektu. Możesz mi pomóc?
alekhine
2
Tak, ten projekt został przeniesiony na github. Pobierz go tutaj: github.com/stig/json-framework .
Todd Hopkinson
Prawdopodobnie pokochasz także hurl.it
Caspar Harmer
Ta rzecz SBJson byłaby fajna, gdyby została zbudowana. Nie udaje mi się z 44 błędami w Xcode 4 w OS X Lion.
Sarah Vessels,
57

Począwszy od iOS 5.0 Apple zapewnia klasę NSJSONSerialization „do konwersji JSON na obiekty Foundation i do konwersji obiektów Foundation na JSON”. Brak zewnętrznych ram do włączenia i zgodnie z wzorcami jego wydajność jest całkiem dobra, znacznie lepsza niż SBJSON.

darrinm
źródło
To świetne słowo, o ile nie planuje się obsługi iOS 4 i wcześniejszych wersji.
Sanjay Chaudhry
18
Ponieważ jest teraz 2012, a iOS6 jest nieuchronny - jest to bardziej prawdopodobne.
Abizern
1
Wynik testu porównawczego to „404 Not Found”.
Pang
Niektóre zaktualizowane testy porównawcze, pokazujące NSJSONSerialization jako najszybszą: stackoverflow.com/questions/16218583/jsonkit-benchmarks
darrinm
6
SBJSON *parser = [[SBJSON alloc] init];

NSString *url_str=[NSString stringWithFormat:@"Example APi Here"];

url_str = [url_str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

NSURLRequest *request =[NSURLRequest requestWithURL:[NSURL URLWithString:url_str]];

NSData *response = [NSURLConnection sendSynchronousRequest:request  returningResponse:nil error:nil];

NSString *json_string = [[NSString alloc] initWithData:response1 encoding:NSUTF8StringEncoding]

NSDictionary *statuses = [parser2 objectWithString:json_string error:nil];

 NSArray *news_array=[[statuses3 objectForKey:@"sold_list"] valueForKey:@"list"];

    for(NSDictionary *news in news_array)
{

    @try {
        [title_arr addObject:[news valueForKey:@"gtitle"]];    //values Add to title array

    }
    @catch (NSException *exception) {

        [title_arr addObject:[NSString stringWithFormat:@""]];
    }
chandrika
źródło
Dziękujemy za przesłanie próbki kodu!
Flea
4

wypróbuj ten najszybszy framework JSON JSONKit . jest szybszy niż zwykły framework JSON.

Hiren
źródło
1
Masz rację, to jest błyskawiczne!
Ivan Fioravanti
Najlepszy framework JSON +1
1

Oto link do mojego samouczka, który przeprowadzi Cię przez:

  • tworzenie usługi sieci Web JSON WCF od podstaw (i problemów, których chcesz uniknąć)
  • dostosowanie go do odczytu / zapisu danych SQL Server
  • uzyskanie aplikacji na iOS 6 do korzystania z usług JSON.
  • korzystanie z usług sieciowych JSON z JavaScript

http://mikesknowledgebase.com/pages/Services/WebServices-Page1.htm

Cały kod źródłowy jest udostępniany bezpłatnie. Cieszyć się.

Mike Gledhill
źródło