проблема в разборе JSON и отображении данных - PullRequest
0 голосов
/ 07 декабря 2011

Я использую приведенный ниже метод json и следующий код для анализа метода json и отображения данных, которые мне нужны, на этикетке. я перешел по этой ссылке http://www.touch -code-magazine.com / tutorial-fetch-and-parse-json / и многим другим, но я не получаю результат, который мне нужен. строка кода, иначе будет показано нулевое значение.

NSDictionary* profile = [profileinfo objectAtIndex:0]; //throws exception

Может ли кто-нибудь помочь мне, что не так в приведенном ниже коде и чего не хватает, так что я получаю значения, т.е. номер телефона, имя и другие данные из метода json.

//Json Method

{

"createdBy":"superadmin",
"createdOn":"2011-11-15T00:49:06+05:30",
"updatedBy":"superadmin",
"updatedOn":"2011-11-15T00:49:06+05:30",
"contactNumber":"9945614074",
"emailNotification":"true",
"firstName":"resident2",
"lastName":"user5",
"loginId":"jin",
"married":"false",
"message":"",
"preferredLanguage":"ko_KR",
"sex":"0",
"smsNotification":"false",
"status":"ACTIVE",
"subscribedPlans":"Intelligent Concierge",
"userName":"Cisco"

}

//code

- (void)loadData

{

 dataWebService = [[NSMutableData data] retain];


NSURLRequest *request = [[NSURLRequest requestWithURL:[NSURL URLWithString:@"URL LINK"]]retain];  

[[NSURLConnection alloc]initWithRequest:request delegate:self];

}


-(void)connectionDidFinishLoading:(NSURLConnection *)connection
{


[connection release];    
NSString *responseString = [[NSString alloc] initWithData:dataWebService encoding:NSUTF8StringEncoding];

self.dataWebService = nil;

NSArray* profileinfo = [(NSDictionary*) [responseString JSONValue] objectForKey:@"createdBy"]; 
[responseString release];    

NSDictionary* profile = [profileinfo objectAtIndex:0];

//fetch the data
NSNumber* numb = [profile objectForKey:@"contactNumber"];

NSString* name = [profile objectForKey:@"firstName"];

//set the text to the label
label.numberOfLines = 0;
label.text = [NSString stringWithFormat:@"contactNumber: %@ \n \n Name:  %@ \n \n",
             numb,name];

}

1 Ответ

1 голос
/ 07 декабря 2011

JsonValue - ваш словарь.

замените

NSArray* profileinfo = [(NSDictionary*) [responseString JSONValue] objectForKey:@"createdBy"]; 

и

NSDictionary* profile = [profileinfo objectAtIndex:0];

на

NSDictionary * profile =  (NSDictionary*)[responseString JSONValue];

и теперь используйте objectForKeyполучить ваши значения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...