可以使用NSJSONSerialization来解析JSON对象。
一个对象想要被转换成JSON的对象必须具有以下特点:
1.顶层对象是NSArray或者NSDictionary;
2.其中的对象实例NSString, NSNumber, NSArray, NSDictionary, 或者 NSNull;
3.所有字典的键都需要是NSArray类型的;
4.数字不是NaN或者无穷大。
创建JSON对象:
1.返回一个JSON数据对象:
+ (id)JSONObjectWithData:(NSData *)data
options:(NSJSONReadingOptions)opt
error:(NSError **)error
options是用于读取JSON数据和创建的对象的选项。具体详见NSJSONReadingOptions。
enum {
NSJSONReadingMutableContainers = (1UL << 0),
NSJSONReadingMutableLeaves = (1UL << 1),
NSJSONReadingAllowFragments = (1UL << 2)
};
typedef NSUInteger NSJSONReadingOptions;
NSJSONReadingMutableContainers:返回可变容器,NSMutableDictionary或NSMutableArray。
2.使用文件流的形式来解析json:
+ (id)JSONObjectWithStream:(NSInputStream *)stream
options:(NSJSONReadingOptions)opt
error:(NSError **)error
创建JSON数据:
3.将Foundation对象转换为JSON对象:
+ (NSData *)dataWithJSONObject:(id)obj
options:(NSJSONWritingOptions)opt
error:(NSError **)error
+ (NSInteger)writeJSONObject:(id)obj
toStream:(NSOutputStream *)stream
options:(NSJSONWritingOptions)opt
error:(NSError **)error
+ (BOOL)isValidJSONObject:(id)obj