2016-07-13 3 views
0

私は職場で問題に遭遇しました。私は私のテーブルを埋めることができるように私は解析する必要がある特定のJSONがあります。しかし、私は自分でそれを行うことができるので、テーブルの人口を無視することができます。私が問題を抱えているのは、この大きなjsonを解析することです。要約:複合体を解析する

NSData *jsonData = [NSData dataWithContentsOfURL:url]; 
NSDictionary* json = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:&error]; 
NSArray* DetaliiTehnice = [json objectForKey:@"DetaliiTehnice"]; //10 elements 
NSArray* ExtraData = [json objectForKey:@"ExtraData"]; //2 keys 

私はそれらをさらに解析することはできませんでした。完全な解析から、私はこれを持っています:

- Array DateTehnice (10 elements) 
    + Array/String Denumire (1 element) 
    + Array Valori (3 elements) 
     + String Criteriu 
     + String Prod1 
     + String Prod2 

- Array ExtraData (6 elements) 
    + Array/String Denumire (1 element) 
    + Array Valori (3 elements) 
     + String Criteriu 
     + String Prod1 
     + String Prod2 

+が付いているものは本当に必要なものです。私はそれらにアクセスする方法を知らない。 Prod2の値にはどのようにアクセスできますか?私は非常に最適化する何かを必要としない、私は要素からアクセスできるソリューションが必要です。

+0

JSONを投稿すると、構造に関する詳細情報が表示されます。 – rckoenes

+0

DateTehniceまたはExtraDataからあなたのテーブルビューに必要なデータは? – Igor

+0

JSONへのリンクを投稿しました。投稿したコードの最初の行を確認してください。それはウェブサイト上にある。私は両方の配列を必要とし、DateTehniceはクライアントが探す情報(例えば、卵、牛乳、パン)を含む文字列を含み、ExtraDataは私が表示する情報(例えば、卵イメージへのリンク)のピクチャへのリンクを含みます。 –

答えて

0
NSString *prod2_DateTehnice = [[[json objectForKey:@"DateTehnice"]objectAtIndex:0] objectAtIndex:0]objectAtIndex:2]; 

同じよう

NSString *prod2_ExtraData = [[[json objectForKey:@"ExtraData"]objectAtIndex:0] objectAtIndex:0]objectAtIndex:2]; 
+0

あなたのコードがnull値を受け取ろうとしました。 –

+0

jsonに値があるかどうかを確認します。 NSlog(@ "json Data%@"、json); – anamika41

0

サーバーから辞書を取得する場合、そのデータを取得する:

NSArray *DetaliiTehnice = json[@"DateTehnice"]; 
for (NSString *item in DetaliiTehnice) { 
    NSLog(@"%@", item); 
} 

または

NSLog(@"%@", DetaliiTehnice[1]); 

をあなたは配列を取得した場合、その後に交換してください:

NSArray *json = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:&error]; 
NSDictionary *dict = json[1]; //change index 
NSArray *DetaliiTehnice = dict[@"DateTehnice"]; 
for (NSString *item in DetaliiTehnice) { 
    NSLog(@"%@", item); 
} 
関連する問題