2012-01-08 59 views
0

我有一个mySQL数据库和一个php脚本,它从所述数据库返回一个表的内容。我把这个数据作为一个字符串,并且能够将它放入一个数组中,但我不太确定如何将它放入一个自定义NSObject类。有什么办法可以做到这一点?SBJsonParser存储服务器在自定义类中的响应

回答

1

如果你的字符串是一个JSON对象数组,你可以使用SBJsonParser方法objectWithString:,它将返回一个NSArray的NSDictionary对象。然后,您可以循环访问数组,并从数组中的每个元素创建一个自定义对象。使用NSDictionary方法objectForKey:来提取每个值。

SBJsonParser *json = [[SBJsonParser new] autorelease]; 
NSError *jsonError = nil; 
NSArray *parsedJSON = [json objectWithString:response error:&jsonError];    

// this example just creates a custom object from the first element in the array 
NSDictionary dictionary = [parsedJSON objectAtIndex:0]   
CustomObject *myCustomObject = [[CustomObject alloc] init]; 
myCustomObject.firstname = [dictionary objectForKey:@"firstname"]; 
myCustomObject.lastname = [dictionary objectForKey:@"lastname"]; 
+0

谢谢,它太简单了!所以要循环遍历表,我只需将代码放在for循环中,然后将0更改为i? – 2012-01-08 23:58:05

+0

是的,这是正确的。 – jonkroll 2012-01-09 00:08:35

+0

谢谢。我正在尝试仅为表的第一行做,但我遇到了问题。当我运行'NSLog(@“EVENT NAME:%@”,[dictionary objectForKey:@“eventName”]);',我回来(null)。我正在异步获取请求,所以认为可能没有时间获取数据。如果我将其更改为Synchronous,则该应用程序会崩溃,并且会发送'[__NSCFDictionary objectAtIndex:]:发送到实例0x6b1f8b0''的无法识别的选择器。有任何想法吗? – 2012-01-09 00:20:30

相关问题