我希望数组中的对象如何将它们存储在对象中,就像我使用时一样
myArray.id=
myArray.name=
所以它shuls显示值
SBJsonParser *parser = [[SBJsonParser alloc] init];
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.krsconnect.no/community/api.html?method=categories&appid=620&mainonly=true"]];
NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
NSString *json_string = [[NSString alloc] initWithData:response encoding:NSUTF8StringEncoding];
NSDictionary *object = [parser objectWithString:json_string error:nil];
NSArray *results = [parser objectWithString:json_string error:nil];
答案 0 :(得分:2)
Matt Gallagher here有一个关于如何解析JSON的精彩教程。希望能让你开始朝着正确的方向前进。
以下内容应显示您的代码/ JSON的结果:
// Get JSON as a NSString from NSData response
NSString *json_string = [[NSString alloc] initWithData:response encoding:NSUTF8StringEncoding];
NSDictionary *object = [parser objectWithString:json_string error:nil];
// the JSON response is an Array
NSArray *results = [parser objectWithString:json_string error:nil];
NSDictionary *dictOne = [results objectAtIndex:0];
NSArray *activitiesArray = [dictOne objectForKey:@"activities"];
NSDictionary *dictTwo = [activitiesArray objectAtIndex:0];
NSDictionary *eventDict = [dictTwo objectForKey:@"event"];
NSLog(@"%@ - %@", [eventDict objectForKey:@"category"]);
答案 1 :(得分:1)
从json调用数据时需要注意一些事情,但它很容易。首先,你应该在m文件的顶部添加这两行:
#define kAsyncModus dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)
#define kYourJsonURL [NSURL URLWithString: @"_THE_JSON_URL_"]
然后,将以下部分插入到viewDidLoad方法中。 “dispatch_async”必须与之前定义的宏(在顶部)一起使用,因此您可以创建一个线程。否则,如果服务器没有响应,您的应用程序可能会崩溃,但方法仍在等待它。
// get elements of json
dispatch_async(kAsyncModus, ^{
NSData *data = [NSData dataWithContentsOfURL: kYourJsonURL];
[self performSelectorOnMainThread:@selector(fetchedData:)
withObject:data
waitUntilDone:YES];
});
并创建一个新方法,从接收到的json中获取单个元素
- (void)fetchedData:(NSData *)responseData{
NSError *error;
NSDictionary *json =
[NSJSONSerialization JSONObjectWithData:responseData
options:kNilOptions
error:&error];
NSArray *results = [json objectForKey:@"_firstElementInJsonFile_"];
NSLog(@"Results: %@", results);
}
了解更多详细信息,请使用结果
NSDictionary *specificData = [results objectAtIndex:0];
应该这样做。
我只是以最短的方式解释它,如果你想让所有的事实都看到tutorial。 但我不确定,是否支持旧设备使用< iOS5的。直到知道我才能测试它。如果你需要这样的东西,也许你可以在Git上看看JSONKit。也许有人知道这些细节,对我来说也很有趣。
答案 2 :(得分:0)
json-framework是要走的路。
但是,此JSON无效。告诉谁提供API以确保其JSON返回为valid。
答案 3 :(得分:0)
JSONKit让这很容易,值得考虑。它非常快。