2017-03-03 61 views
2

下面是從Web獲取數據的示例代碼,我試圖在logcat中顯示它。我在這裏的代碼。請幫我解決它。在此先感謝如何訪問JSON數據並將其顯示在XCode Logcat中,如果響應爲空,我想顯示警報

NSArray *dicAllNetworks = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil]; 

NSLog(@"JsonData=%@",dicAllNetworks); 

for (NSDictionary *dict in dicAllNetworks) 
{ 
    NSInteger number = [dict[@"UserID"] intValue]; 
    NSString *UserTypeConst =dict[@"UserTypeConst"]; 
    NSString *name = dict[@"UserName"]; 
} 

這是響應:

JsonData=[{"UserID":2478,"UserTypeConst":"PQR","UserName":"115005p"}] 

如果響應爲null

我想顯示警報。

+0

你訪問在循環中的數據還有什麼你想? –

+0

當調試程序進入循環...它給我終止應用程序,由於未捕獲的異常@ inder –

+0

在這一點上它給這樣的錯誤,也發佈整個異常日誌 –

回答

0

試試這個

for (NSDictionary *dict in dicAllNetworks) 
{ 
    NSNumber *number = [NSNumber numberWithInt:dict[@"UserID"]]; 
    NSString *UserTypeConst =dict[@"UserTypeConst"]; 
    NSString *name = dict[@"UserName"]; 
} 
+0

顯示錯誤@jignesh –

+0

在評論中添加錯誤 –

+0

NSNumber * number = [dict [@「UserID」]];在第一次關閉方括號後顯示紅色標記 –

0

試試這個: -

for (NSDictionary *dict in dicAllNetworks){ 
    NSInteger number = [[dict valueForKey:@"UserID"] integerValue]; 
    NSString *UserTypeConst =[dict valueForKey:@"UserTypeConst"]; 
    NSString *name = [dict valueForKey:@"userName"]; 
} 
+0

libC++ abi.dylib:終止與NSException類型的未捕獲的異常 來自調試器的消息:由於信號終止6 –

0

的問題是在你的data請參閱下面的代碼並閱讀註釋

//This is your actual string 
// Code 1 
// NSString *jstr = @"\"[{\\\"UserID\\\":24,\\\"UserTypeConst\\\":\\\"PAR\\\",\\\"UserNa‌​me\\\":\\\"160005p\\\"}]\""; 

// where as your string be like this 
// Code 2 
NSString *jstr = @"[{\"UserID\":2478,\"UserTypeConst\":\"PQR\",\"UserName\":\"115005p\"}]"; 
NSData *data = [jstr dataUsingEncoding:NSUTF8StringEncoding]; 



NSArray *dicAllNetworks = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:nil]; 

NSLog(@"JsonData=%@",dicAllNetworks); 

for (NSDictionary *dict in dicAllNetworks) 
{ 
    NSInteger number = [dict[@"UserID"] intValue]; 
    NSString *UserTypeConst =dict[@"UserTypeConst"]; 
    NSString *name = dict[@"UserName"]; 
} 

只需運行上面示例它會正常工作,但是當您評論Code 2並取消註釋Code 1你得到你的問題。
我不知道你是如何創建你的data對象,但這不是一個有效的json。


在你現有的代碼只是改變代碼如下

NSError *error = nil; 
NSArray *dicAllNetworks = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error]; 
NSLog(@"eror=%@", error); 

你可以看到你的JSON格式不正確

+0

嗨inder其工作thankyou即時通訊設法解決這個前面5小時非常感謝你@ inder kumar rathore –

+0

嗨@ @如果我得到響應null和我想要顯示警報... –

0
 dispatch_async(dispatch_get_main_queue(), ^{ 

               UIAlertController *alert=[UIAlertController alertControllerWithTitle:@"Please enter valid UserID and Password" message:@"" preferredStyle:UIAlertControllerStyleAlert]; 

               UIAlertAction* ok = [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction * action) 
                    { 
                     [alert dismissViewControllerAnimated:YES completion:nil]; 
                    }]; 

               [alert addAction:ok]; 
               [self presentViewController:alert animated:YES completion:nil]; 

               NSLog(@"Invalide Login Credential."); 


              }); 
相關問題