1

私はこのフレームワークを見つけました、それはユーザーにとって簡単なようです、http: //stig.github.com/json-framework/ 。例では、彼はこのjsonを持っています:

{"resultats":{"joueurs":[{"nom": "Jean Martin"、 "score":10000}、{"nom": "Pierre Dupond"、 "score": "9000"}、{"nom ":"アリスバトー "、"スコア ":" 8500 "}]}}

そして彼はこのようにそれを麻痺させます:

NSDictionary *json    = [myJSON JSONValue];

//récupération  des résultats
NSDictionary *resultats    = [json objectForKey:@"resultats"];

//récupération du tableau de Jouers
NSArray *listeJoueur    =  [resultats objectForKey:@"joueurs"];

//On parcourt la liste de joueurs
for (NSDictionary *dic in listeJoueur) {

//création d'un objet Joueur
Joueur *joueur = [[Joueur alloc] init];

//renseignement du nom
joueur.nom = [dic objectForKey:@"nom"];

//renseingement du score
joueur.score = [[dic objectForKey:@"score"] intValue];

しかし、私は、JSONに配列がありません。これは私のjsonです:

{"escarrival": "NCE"、 "escdepart": "DJE"、 "estarrival": "08.24"、 "estdepart": "06.27"、 "flynumber": "TU 0286"、 "fstatuts": "Vol atterri" 、"proarrival": "08.25"、 "prodepart": "06.30"、 "realarrived": "----"、 "realdepart": "06.27"}

どうすればそれをパラージングできますか?ありがとう

4

1 に答える 1

2

キーのオブジェクトを抽出するだけで、解析する必要はありません。

    NSDictionary *jsonDict    = [myJSON JSONValue];

    //création d'un objet Joueur
    Joueur *joueur = [[Joueur alloc] init];

    //renseignement du nom
    joueur.escarrival = [jsonDict objectForKey:@"escarrival"];

    joueur.escdepart = [jsonDict objectForKey:@"escdepart"];

    joueur.estarrival = [jsonDict objectForKey:@"estarrival"];
    joueur.estdepart = [jsonDict objectForKey:@"estdepart"];
    joueur.flynumber = [jsonDict objectForKey:@"flynumber"];
    joueur.fstatuts = [jsonDict objectForKey:@"fstatuts"];
    joueur.flynumber = [jsonDict objectForKey:@"flynumber"];
    joueur.proarrival = [jsonDict objectForKey:@"proarrival"];
    joueur.prodepart = [jsonDict objectForKey:@"prodepart"];
    joueur.realarrived = [jsonDict objectForKey:@"realarrived"];
    joueur.realdepart = [jsonDict objectForKey:@"realdepart"];

編集:

NSDictionaryをよりよく理解するには、Appleのコレクションプログラミングトピックをお読みください。

于 2011-05-19T14:27:32.140 に答える