NSJSONSerialization

2014-10-20  本文已影响4216人  fnx

在iOS 5 中,苹果引入了一个解析JSON串的NSJSONSerialization类。通过该类,我们可以完成JSON数据与NSDictionary和NSArray之间的转化。

一、将NSDictionary或NSArray转化为JSON串


// 将字典或者数组转化为JSON串

- (NSData *)toJSONData:(id)theData{

NSError *error = nil;

NSData *jsonData = [NSJSONSerialization dataWithJSONObject:theData

options:NSJSONWritingPrettyPrinted

error:&error];

if ([jsonData length] > 0 && error == nil){

return jsonData;

}else{

return nil;

}

}

使用这个方法的返回,我们就可以得到想要的JSON串

NSString *jsonString = [[NSString alloc] initWithData:jsonData

encoding:NSUTF8StringEncoding];

二、将JSON串转化为NSDictionary或NSArray


将NSString转化为NSData

NSData *jsonData= [jsonString dataUsingEncoding:NSASCIIStringEncoding];

// 将JSON串转化为字典或者数组

- (id)toArrayOrNSDictionary:(NSData *)jsonData{

NSError *error = nil;

id jsonObject = [NSJSONSerialization JSONObjectWithData:jsonData

options:NSJSONReadingAllowFragments

error:&error];

if (jsonObject != nil && error == nil) {

return jsonObject;

} else {

// 解析错误

return nil;

}

}

上一篇下一篇

猜你喜欢

热点阅读