我们如何使用JSON查询从服务器获取数据?

时间:2014-04-09 10:17:51

标签: ios json

**在这段代码中当从viewdidload()函数添加断点时,我得到greetingArray.count为零,但是当我在for循环中添加断点时,它正常工作,我得到了结果3作为greetingArray的值。没有从服务器获取数据的可能原因是什么。服务器端没有问题。我已经检查过了。

- (void)viewDidLoad
{
    [super viewDidLoad];
    greetingArray = [[NSMutableArray alloc] init];
    greetingDictionary = [[NSMutableDictionary alloc] init];
         NSString *connectionString;
    connectionString=[NSString stringWithFormat:@"http://xxx.xxx.x.xx/TestMgt/api/%@",self.fieldName];

    NSURL *url = [NSURL URLWithString:connectionString];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];
    [NSURLConnection sendAsynchronousRequest:request
                                       queue:[NSOperationQueue mainQueue]
                           completionHandler:^(NSURLResponse *response,
                                               NSData *data, NSError *connectionError)
     {
         if (data.length > 0 && connectionError == nil)
         {
             NSLog(@"----------------------------------------------------");
             NSLog(@"Data length is = %d",data.length);
            greetingMArray = [NSJSONSerialization JSONObjectWithData:data options:0 error:NULL];
             NSLog(@"%@",greetingMArray);
             for(int i = 0 ; i< greetingMArray.count; i++)
             {
                 greetingDictionary = (NSMutableDictionary *)[greetingMArray objectAtIndex:i];
                 NSLog(@"%@",greetingDictionary);
                 ConnectionOvertime *overtime = [[ConnectionOvertime alloc] init];
                 overtime.entryDate=[greetingDictionary valueForKey:@"EntryDate"];
                 [greetingArray addObject:overtime];
                 NSLog(@"%d",greetingArray.count);
             }      
         }
     }];
}

1 个答案:

答案 0 :(得分:0)

     if you don't get any answer try jsonFramework library and import sbjsonParser.h 


for Example try below code
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
self.ChapterID=[[NSMutableArray alloc]init];
self.ChapterName=[[NSMutableArray alloc]init];
NSURL *url=[NSURL URLWithString:@"https://www.coursekart.com/webservice/load-subjects.php?api_key=68410920GHJFLAC878&standard_id=2&format=json"];
NSURLRequest *request=[[NSURLRequest alloc]initWithURL:url];
NSError *error;
NSURLResponse *response;

NSData *data=[NSURLConnection  sendSynchronousRequest:request returningResponse:&response error:&error];
if(data!=nil)
{
    NSString *content=[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
    if(content.length!=0)
    {
        SBJsonParser *parser=[[SBJsonParser alloc]init];
        NSArray *dir=[[parser objectWithString:content]objectForKey:@"SubjectList"];


        for(int i=0;i<dir.count;i++)
        {
            NSDictionary *array=[dir objectAtIndex:i];
            NSArray *data=[array objectForKey:@"Data"];
            NSDictionary *dat=(NSDictionary *)data;
            NSString *idCh=[dat objectForKey:@"id"];
            NSString *slug=[dat objectForKey:@"slug"];

            [ChapterID addObject:idCh];
            [ChapterName addObject:slug];
           // NSLog(@"%@",[ChapterID objectAtIndex:0]);
            //NSLog(@"%@",[ChapterName objectAtIndex:0]);

        }
    }
   }
}