1

私は多くのリンクを通過してきましたが、幸いなことに多くの同様のリンクを取得しましたが、何もうまくいきませんでした.

私の配列は、NSLog() を使用して出力にこのように表示されます。

products =     (
            {
        cid = 1;
        name = "hello world";
    },
            {
        cid = 2;
        name = "It is an array";
    },
            {
        cid = 3;
        name = "error error";
    },
            {
        cid = 4;
        name = "OMG! still same";
    },
            {
        cid = 5;
        name = "any help";

  ...
  ...
   },
            {
        cid = 130;
        name = "How is the work going on.";
    },
            {
        cid = 131;
        name = "Had a nice lunch";
    }
);
success = 1

JSON を解析するコード。ここで、"news" は配列変数です。

 - (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
    [UIApplication sharedApplication].networkActivityIndicatorVisible=NO;
    news = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
    NSLog(@"Feeds...%@",news);
    [myTableView reloadData];
}

表の行を表示するコード、ここでは「ニュース」の値が NSLog() によって表示されています。NSDictionary でエラーが発生します。

-(UITableViewCell *)tableView: (UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
   NSLog(@"=====%@====",news);
   NSDictionary *myDict = [news objectAtIndex:indexPath.row];
   NSArray *myArray = [myDict objectForKey:@"name"];
   UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MainCell"];
   if (cell==nil) {
    cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"MainCell"];
}

for (NSString *str in myArray) {
    cell.textLabel.text = str;
}
   return cell;

}

ここで不足しているものを見つけることができません..、助けてください。

前もって感謝します。

4

4 に答える 4

6

JSON 構造は次のようなものです。

辞書-->配列-->オブジェクト (辞書)。

したがって、次のことを行う必要があります。

  1. キーを使用して辞書から配列を抽出しますproduct
  2. を使用して配列からオブジェクト(辞書)を抽出しますindex
  3. キーを使用して辞書オブジェクトから名前を取得しますname

これの代わりに:

NSDictionary *myDict = [news objectAtIndex:indexPath.row];
NSArray *myArray = [myDict objectForKey:@"name"];

使用する:

NSArray *myArr = [news objectForKey:@"products"];
cell.textLabel.text = [[myArr objectAtIndex:0] objectForKey:@"name"];

編集

また、numberOfRowsInSection好きなものを変更してください:

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return [[news objectForKey:@"products"] count];
}
于 2013-05-13T12:18:05.770 に答える
0

NSDictionary を Array に入れ、それを Table メソッドで使用します

 NSMutableArray *result=[[NSMutableArray alloc] init];
  result = [googleResponse valueForKey: @"products"];


 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSMutableDictionary *dt = [result objectAtIndex:indexPath.row];

}  

それはあなたを助ける!!!!!

于 2013-05-13T12:19:19.680 に答える