IOS5 JSON
IOS5.0开始支持JSON,所以不用第三方的解析了。
//将Foundation(NSDictionary、NSData) 转换为JSon格式的NSData 用来发送
//+ dataWithJSONObject:options:error:
//将JSON格式的Data转换为Foundation(NSDictionary、NSData) 用来解析
//+ JSONObjectWithData:options:error:
code:
https://github.com/cokecoffe/ios-demo/tree/master/HTTP
- 解析json成dic对象
- -(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
- }
- 把对象生成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];
- 添加json方法至dic
- @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
- 使用列子
- NSDictionary* myInfo =[NSDictionary dictionaryWithContentsOfJSONURLString:@"http://www.yahoo.com/news.json"];
- NSDictionary* information =[NSDictionary dictionaryWithObjectsAndKeys:@"orange",@"apple",@"banana",@"fig",nil];
- NSData* json =[information toJSON];
- 判断是否可json化
- BOOL isTurnableToJSON =[NSJSONSerialization isValidJSONObject: object]
posted on 2012-06-02 23:46 cokecoffe 阅读(7468) 评论(0) 编辑 收藏 举报