2010-11-25 7 views
0

私はSBJSONでJSONファイルを解析することに嘘をつきますが、ちょっとした理解の問題がありますか?SBJSON +構文を解析します。

  • ID
  • テキスト
  • 日付exempleためので

: はここに私のJSON構造である

[{ "ID": "1"、 "テキスト": "blabla"、 "date": "1235432241"}、{"id": "2"、 "text": "blabla2"、 "date": "1235432241"}

これは私が見つけたコードですJを解析するSONファイルの聖霊降臨祭SBJSON:


- (void)downloadJSONFile:(NSData *)data 
{ 
    SBJSON *jsonParser = [[[SBJSON alloc] init] autorelease]; 
    NSString *jsonString = [[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding] autorelease]; 

    id response = [jsonParser objectWithString:jsonString error:NULL]; 

    NSDictionary *feed = (NSDictionary *)response; 
    NSArray *nodes = (NSArray *)[feed valueForKey:@"keyValue"]; // here's I don't know what to put 

    for (int i = 0; i nodes.count; i++) { 

     NSDictionary *node = (NSDictionary *)[nodes objectAtIndex:i]; 
     NSLog(@"id = %@",[node objectForKey:@"id"]); 
    } 
} 

私は私のノード配列のvalueforKeyで書くことかわからない... 誰かが私に説明できますか? ありがとう!

答えて

1

あなたのキーは、ID、テキスト、日付です。あなたが強調されてきたその行で、その後、キーIDを持つオブジェクトを解析したいのであれば、それは次のようになります。

valueForKey:あなたがすべきあなたの供給JSONのサンプルの外観により、「ID」

+0

私のforループでは、テキストと日付キーを要求できますか? – Pierre

+0

JSONレスポンスから解析する内容に依存します。 JSONレスポンスには3つのキーがあります。だから基本的にそれらのあなたの鍵:ID、テキストと日付です。 valueForKeyは、valueForKeyに続く@ ""の引用符内に記述したキーに関連付けられた値を取得することを意味します。 – Bourne

+0

したがって、テキスト値だけをフェッチしたい場合は、@ "text"を使用します。同じ休憩のために行く – Bourne

0

@ 2つを含むNSArrayを取得してください。だから、コードが

NSArray *nodes = (NSArray *)response; 

SBJSONに精通していないする必要があり、レスポンスが実際にNSDictionaryであることも可能です。その場合、あなただけのそれはのようなものですからあなたが印刷を取得する必要がありますNSLog(@"%@", feed);を使用して辞書を印刷することができます。nameOfKeyは、あなたが探しているkeyValueのだろう

{ 
    nameOfKey = (
       { 
       "id" = 1; 
       "text" = "blablabla" 
...