0
我有一个mySQL数据库和一个php脚本,它从所述数据库返回一个表的内容。我把这个数据作为一个字符串,并且能够将它放入一个数组中,但我不太确定如何将它放入一个自定义NSObject类。有什么办法可以做到这一点?SBJsonParser存储服务器在自定义类中的响应
我有一个mySQL数据库和一个php脚本,它从所述数据库返回一个表的内容。我把这个数据作为一个字符串,并且能够将它放入一个数组中,但我不太确定如何将它放入一个自定义NSObject类。有什么办法可以做到这一点?SBJsonParser存储服务器在自定义类中的响应
如果你的字符串是一个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"];
谢谢,它太简单了!所以要循环遍历表,我只需将代码放在for循环中,然后将0更改为i? – 2012-01-08 23:58:05
是的,这是正确的。 – jonkroll 2012-01-09 00:08:35
谢谢。我正在尝试仅为表的第一行做,但我遇到了问题。当我运行'NSLog(@“EVENT NAME:%@”,[dictionary objectForKey:@“eventName”]);',我回来(null)。我正在异步获取请求,所以认为可能没有时间获取数据。如果我将其更改为Synchronous,则该应用程序会崩溃,并且会发送'[__NSCFDictionary objectAtIndex:]:发送到实例0x6b1f8b0''的无法识别的选择器。有任何想法吗? – 2012-01-09 00:20:30