[英]working with json data
我有以下代码来解析从服务器接收到的JSON数据:
-(void)connectionDidFinishLoading:(NSURLConnection *)connection {
NSAutoreleasePool *pool=[[NSAutoreleasePool alloc] init];
NSArray *array_webdata=[[NSArray array] init];
NSString *searchStatus = [[NSString alloc] initWithData:webData encoding:NSUTF8StringEncoding];
array_webdata = [parsedata objectWithString:searchStatus error:nil];
NSDictionary *usersList = [array_webdata valueForKey:@"results"];
//我认为这不是真正的NSDictionary,因为如果我写NSArray * keys = [usersList allKeys]; 执行崩溃
NSLog(@"\n usersList =\n %@ \n", usersList);
[searchStatus release];
[connection release];
[webData release];
[pool drain];}
存储在usersList中的json数据具有以下结构:
(
{
createTime = "date hour";
fullname = "user name";
"prof_id" = number;
thumb = "image.jpg";
},
{
data of rest of users...
}
)
我想创建一个类来存储每个用户的数据,并在我想使用特定用途时使用“ prof_id”。 我需要这样做是因为该应用程序需要包含所有用户的列表(而不是tableview),我认为这是最简单的方法。
有人能帮我吗? 谢谢!!
请使用JsonKit Framework解析从Web服务接收的json数据。
使用JSONKit读取数据并进行解析:
NSData* jsonData = [NSData dataWithData:webData];
JSONDecoder* decoder = [[JSONDecoder alloc]
initWithParseOptions:JKParseOptionNone];
NSArray* json = [decoder objectWithData:jsonData];
之后,您必须使用for循环遍历json变量。
从NSObject类继承创建名为User
(file-> new-> file)的新类,在.h / .m文件中创建所需的参数。(进行合成以生成属性的getter / setter)
在连接类中导入User.h并在迭代器循环中创建User实体的对象,并将这些对象添加到全局作用域数组中。
for(NSDictionary *userInfo in json) {
User* user=[[User alloc] init];
user.fullName=[userInfo valueForKey:@"fullname"];
user.prof_id=[[userInfo valueForKey:@"prof_id"] integerValue];
// Add into your global array
[usersList addObject:user];
[user release];// if ARC is not enable
}
// Check for successful object creation
NSLog(@"USER LIST contain User class Objects- %@",userList);
如果我没记错的话,您唯一需要做的就是:
NSMutableArray *yourArray = usersList;
然后像这样的for循环
for(int i = 0;i<[usersList count] ;i++)
{
NSMutableDictionary *yourDictionary = [usersList objectAtIndex:i];
int prof_id = [yourDictionary valueForKey:@"prof_id"];
}
您可以像这样获取您的prof_id。
我希望这有帮助...
使用JSON框架,并使用以下代码解析数据。
NSString* newStr = [[NSString alloc] initWithContentsOfURL:[NSURL URLWithString:@"yout link to json file"] encoding:NSUTF8StringEncoding error:nil];
NSLog(@"new str - %@",newStr);
NSArray *response = [newStr JSONValue];
NSLog(@"json array - %@",response);
使用响应数组显示结果。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.