2011-07-29 6 views
0

私はWebサービスを使用し、JSONとしてレスポンスを取得しています。私は配列から詳細を抽出したい。ここでiPhoneのJSON形式の配列から文字列を引き出す方法は?

私のサンプルコードは、私は上記のコードを使用している場合

NSString *urlDataString = [[NSString alloc] initWithData:receiveData encoding:NSUTF8StringEncoding]; 
    SBJSON *parser = [[SBJSON alloc] init]; 
    NSError *error = nil; 
    self.customArray = [parser objectWithString:urlDataString error:&error]; 

    for (NSDictionary *feedItem in customArray) 
    {   
     NSString *listDeals = [feedItem objectForKey:@"ListOfDeals"]; 
     [tempArray addObject:listDeals]; 
    } 

すべての文字列が一時配列と配列値1に格納されているが、私はデータを保存するには、別のインデックスであることをしています。私はインデックスの位置を使用して詳細を取得する必要があるので。

私はこのような使用している場合は、

for (NSDictionary *feedItem in self.dollarArray) 
    {   
     NSString *listDeals = [[feedItem objectForKey:@"ListOfDeals"] valueForKey:@"Description"]; 
     [tempArray addObject:listDeals]; 
    } 

私はtempArrayからのすべての記述の値を取得する、しかし、私は、配列からすべての文字列を取得したいです。

実際に私は、一時配列のカウント3を期待し、ここで

NSLog(@"%@",[tempArray ObjectAtIndex:0]); 

      { 
        BusId = 14; 
        Description = "Sample data" 
        Id = 60; 
        StartTime = "7/28/2011 8:30:00 PM"; 
       }, 

のような値私のサンプルの応答を取得したい、

(
      ListOfDetails =   (
          { 
        BusId = 14; 
        Description = "Sample data" 
        Id = 60; 
        StartTime = "7/28/2011 8:30:00 PM"; 
       }, 
          { 
        BusId = 16; 
        Description = "Test data" 
        Id = 62; 
        StartTime = "7/29/2011 8:30:00 PM"; 
       }, 
          { 
        BusId = 15; 
        Description = "Test" 
        Id = 61; 
        StartTime = "7/27/2011 8:30:00 PM"; 
       }, 
    ) 

は、だから私はそれをどのように行うことができますでしょうか?私を案内してください。

ありがとうございます!

答えて

2
for (NSDictionary *feedItem in self.dollarArray){ 

    for (NSMutableArray *vijayTemp in [feedItem objectForKey:@"ListOfDeals"]) { 

     [tempArray addObject:vijayTemp]; 

    } 

} 
+0

なぜNSMutableArrayですか? –

+0

@vijay、私はあなたが明らかに私の質問を得ていないと思います – Pugal

+0

thalaを確認 –

1
for (NSDictionary *feedItem in self.dollarArray) 
    {   
     NSDictionary *listDeals = [[feedItem objectForKey:@"ListOfDeals"] valueForKey:@"Description"]; 
    [tempArray addObject:listDeals]; // Gets description 
    listDeals = [[feedItem objectForKey:@"ListOfDeals"] valueForKey:@"BusId"]; 
    [tempArray addObject:listDeals]; // Gets BusId 
    listDeals = [[feedItem objectForKey:@"ListOfDeals"] valueForKey:@"Id"]; 
    [tempArray addObject:listDeals]; // Gets Id 
    listDeals = [[feedItem objectForKey:@"ListOfDeals"] valueForKey:@"StartTime"]; 
    [tempArray addObject:listDeals]; // Gets StartTime 

    } 

代わりに、あなたはすべての4つの値のための辞書です[feedItem objectForKey:@"ListOfDeals"]からの復帰を使用することができます。 NSLogと%@フォーマット指定子を使用して上記のように保存するか、印刷することができます。

編集:

あなたはallvaluesメソッドを使用して、辞書から配列を作成することができます。私はこれがあなたの質問に答えるべきだと思います。

NSArray *tempArray = [dictionary allvalues]; 


allValues 
Returns a new array containing the dictionary’s values. 

- (NSArray *)allValues 
+0

返信ありがとうございます。私はその方法を知っているが、私はその配列から15以上の文字列を持っているので、より多くのコードを取るだろう。すべての文字列を配列のインデックス位置に格納する方法はありますか? likeを使用せずに、listDeals = [[feedItem objectForKey:@ "ListOfDeals"] valueForKey:@ "Id"]; [tempArray addObject:listDeals]; // Idを取得する – Pugal

+0

どのようなインデックスが好きですか? –

+0

実際には、私は[[tempArray objectAtIndex:0] objectForKey:@ "Description"]と[[tempArray objectAtIndex:2]]のように使用しなければならないところで、文字列にアクセスできるように、 objectForKey:@ "StartTime"] – Pugal

関連する問題