iOS JSON解析

116 篇文章 0 订阅
116 篇文章 0 订阅
解析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]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值