条件
今回は適当に東京電力電力供給状況APIからJSON形式で当日の「供給可能最大電力」と現在の「消費電力」を表示する。
-東京電力電力供給状況APIを利用
-日時を取得し2時間前の消費電力を取得する
-西暦、月、日、時間をそれぞれ取得
-json形式で取得する
手順
日付を取得して西暦、月、日、時間をそれぞれ取得
//現在の日付を取得
NSDate *now = [NSDate date];
//NSCalendarでフォーマット
NSCalendar *calendar = [NSCalendar currentCalendar];
NSUInteger flags;
NSDateComponents *comps;
//西暦、月、日、時間をそれぞれ取得
flags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit ;
comps = [calendar components:flags fromDate:now];
西暦、月、日、時間をそれぞれ変数に代入
NSInteger year = comps.year;
NSInteger month = comps.month;
NSInteger day = comps.day;
//2時間前を取得する為-2する
NSInteger hour = comps.hour - 2;
東京電力のAPI取得URLを生成
//元のURL
NSString *orign = @"http://tepco-usage-api.appspot.com";
//http://tepco-usage-api.appspot.com/西暦/月/日/時間.jsonとなるように生成
NSString *url = [NSString stringWithFormat:@"%@/%ld/%ld/%ld/%ld.json",orign,year,month,day,hour];
NSURLRequestの生成
//NSURLからNSURLRequestを作る
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:url]];
//サーバーとの通信を行う
NSData *json = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
//JSONをパース
NSArray *array = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingAllowFragments error:nil];
NSLogで表示
NSLog(@"供給可能最大電力:%@万kW 消費電力:%@万kW", [array valueForKeyPath:@"capacity"], [array valueForKeyPath:@"usage"]);
完成系
NSDate *now = [NSDate date];
NSCalendar *calendar = [NSCalendar currentCalendar];
NSUInteger flags;
NSDateComponents *comps;
flags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit ;
comps = [calendar components:flags fromDate:now];
NSInteger year = comps.year;
NSInteger month = comps.month;
NSInteger day = comps.day;
NSInteger hour = comps.hour - 2;
NSString *orign = @"http://tepco-usage-api.appspot.com";
NSString *url = [NSString stringWithFormat:@"%@/%ld/%ld/%ld/%ld.json",orign,year,month,day,hour];
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:url]];
NSData *json = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
NSArray *array = [NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingAllowFragments error:nil];
NSLog(@"供給可能最大電力:%@万kW 消費電力:%@万kW", [array valueForKeyPath:@"capacity"], [array valueForKeyPath:@"usage"]);