「ios入門」jsonを解析する方法

1.jsonからdictへ解析
-(void)fetchedData:(NSData*)responseData {//parse out the json dataNSError* error;
NSDictionary* json =[NSJSONSerialization
JSONObjectWithData:responseData //1

options:kNilOptions
error:&error];

NSArray* latestLoans =[json objectForKey:@"loans"]; //2

NSLog(@"loans: %@", latestLoans); //3
}

2.オブジェクトからjson stringに変換
//build an info object and convert to json
NSDictionary* info =[NSDictionary dictionaryWithObjectsAndKeys:[loan objectForKey:@"name"],
@"who",
[(NSDictionary*)[loan objectForKey:@"location"]
objectForKey:@"country"],
@"where",
[NSNumber numberWithFloat: outstandingAmount],
@"what",
nil];

//convert object to data
NSData* jsonData =[NSJSONSerialization dataWithJSONObject:info
options:NSJSONWritingPrettyPrinted error:&error];

//print out the data contents
jsonSummary.text =[[NSString alloc] initWithData:jsonData
encoding:NSUTF8StringEncoding];

3.dicにjsonメソッドを追加

@interfaceNSDictionary(JSONCategories)
+(NSDictionary*)dictionaryWithContentsOfJSONURLString:(NSString*)urlAddress;
-(NSData*)toJSON;
@end

@implementationNSDictionary(JSONCategories)
+(NSDictionary*)dictionaryWithContentsOfJSONURLString:(NSString*)urlAddress{
NSData* data =[NSData dataWithContentsOfURL:[NSURL URLWithString: urlAddress]];
__autoreleasing NSError* error =nil;
id result =[NSJSONSerialization JSONObjectWithData:data
options:kNilOptions error:&error];
if(error !=nil)returnnil;
return result;
}

-(NSData*)toJSON{
NSError* error =nil;
id result =[NSJSONSerialization dataWithJSONObject:self
options:kNilOptions error:&error];
if(error !=nil)returnnil;
return result;
}@end

4.利用サンプル
NSDictionary* myInfo =[NSDictionary dictionaryWithContentsOfJSONURLString:@"http://www.yahoo.com/news.json"];
NSDictionary* information =[NSDictionary dictionaryWithObjectsAndKeys:@"orange",@"apple",@"banana",@"fig",nil];
NSData* json =[information toJSON];

5.jsonを判断
BOOL isTurnableToJSON =[NSJSONSerialization isValidJSONObject: object]

IOS

Posted by arkgame