我正在尝试使用此处https://github.com/johnezang/JSONKit中的JSONKIt来解析JSON Feed并将其放入objective-c对象中。我是iOS的新手,并不知道从哪里开始。有没有关于使用这个库的好教程?
答案 0 :(得分:16)
谷歌搜索后,我没有找到任何教程,但使用JSONKit应该是自我解释。
使用NSURLConnection或ASIHTTPRequest下载JSON源后,只需创建JSON源中所有对象的字典,如下所示:
//jsonString is your downloaded string JSON Feed
NSDictionary *deserializedData = [jsonString objectFromJSONString];
//Helpful snippet to log all the deserialized objects and their keys
NSLog(@"%@", [deserializedData description]);
创建字典后,您可以执行以下操作:
NSString *string = [deserializedData objectForKey:@"someJSONKey"];
这就是JSONKit背后的基础。
JSONKit当然要强大得多,你可以在JSONKit.h中找到一些你可以用它做的其他事情。
答案 1 :(得分:0)
我会假设objectFromJSONString
返回一个NSDictionary
,它可以很好地返回一个数组,或nil
,特别是如果服务器返回一些很少使用和思考的错误。
更合适的行动是:
NSError *error;
id rawData = [jsonString objectFromJSONStringWithParseOptions:JKParseOptionNone error:&error];
if ( error != nil ) {
// evaluate the error and handle appropriately
}
if ( [rawData isKindOfClass:[NSDictionary class]] ) {
// process dictionary
}
else if ( [rawData isKindOfClass:[NSArray class]] ) {
// process array
}
else {
// someting else happened, 'rawData' is likely 'nil'
// handle appropriately
}
如果没有这些检查,您最终可能会遇到运行时错误,因为服务器返回了一些意外的错误。