2014-03-27 15 views
0

集我有一個是通過Web服務發送JSON編碼信息下面的PHP頁面:目標C顯示多個信息從JSON

<?php 
header('Content-Type: application/json'); 

$arr = array(
    0 => 
     array(
      'userName'=>'user1', 
      'userBio'=>'This is user1 bio.', 
      'userSubmitted'=>15 
     ), 
    1 => 
     array(
      'userName'=>'user2', 
      'userBio'=>'This is user2 bio.', 
      'userSubmitted'=>2 
     ), 
    2 => 
     array(
      'userName'=>'user3', 
      'userBio'=>'This is user3 bio.', 
      'userSubmitted'=>7 
     ), 
); 

echo json_encode($arr); 

?> 

我想有我們的應用程序顯示每一組的用戶信息,但現在只有最後一組信息正在顯示。什麼是適當的代碼來顯示所有集合,而不僅僅是最後一組信息?這是客觀的C代碼:

NSURL *myURL = [[NSURL alloc]initWithString:@"http://domain.com/json2.php"]; 
NSData *myData1 = [[NSData alloc]initWithContentsOfURL:myURL]; 
NSError *error1; 
NSArray *users = [NSJSONSerialization JSONObjectWithData:myData1 options:NSJSONReadingMutableContainers error:&error1]; 


if(!error1) 
{ 
    for (NSDictionary * user in users) 
    { 
     textUser.text = [user objectForKey: @"userName"]; 

     textBio.text = [user objectForKey: @"userBio"]; 

     textSubmitted.text = [user objectForKey: @"userSubmitted"]; 
    } 
} 

else 
{ 
    textUser.text = [NSString stringWithFormat:@"Error--%@",[error1 description]]; 
} 
+0

textUser.text,textBio.text,textSubmitted.text如果您顯示在標籤上獲取數據,則非常數據將被新數據替換。這就是爲什麼它會顯示新數據,這意味着最新到達數據 – Muralikrishna

+0

好吧我理解這是如何工作的。你知道一個解決方案是什麼讓同時顯示所有3套? – user3093592

回答

0

如果你需要顯示的所有集,您可以創建一個包含所有信息的單一字符串,然後將其分配給單個標籤。而不是使用三個單獨的標籤。即創建單個UILabel,比如說allUsersInfo
然後使用下面的代碼:

NSString *userName = [NSString string]; 
NSString *userBio = [NSString string]; 
NSString *userSubmitted = [NSString string]; 
for (NSDictionary * user in users) 
{ 
    userName = [user objectForKey: @"userName"]; 
    userBio = [user objectForKey: @"userBio"]; 
    userSubmitted = [user objectForKey: @"userSubmitted"]; 
    allUsersInfo.text = [NSString stringWithFormat:@"%@\n%@\n%@\n\n",userName,userBio,userSubmitted]; 
} 

希望這有助於!