NSJSONSerialization

简介:

NSJSONSerialization 可以将 JSON 转换为 OC 对象或将 OC 对象转为 JSON 数据。

可以被转为 JSON 的对象具有以下属性:

  1. 对象为 NSArray 或 NSDictionary;
  2. 所有对象都是 NSString, NSNumber, NSArray, NSDictionary, or NSNull.的实例;
  3. 字典的键值必须为 NSString 类型;
  4. Numbers 不能是非数字或无穷大。

 

常用用法:

1.OC 对象 转为 JSON 类型数据

/**
 *  @brief OC对象转为JSON数据
 *
 *  @param obj   指定要转换的数据
 *  @param opt   指定枚举值 通常使用kNilOptions
 *  @param error 错误
 *
 *  @return 返回转换的JSON数据
 */
+ (nullable NSData *)dataWithJSONObject:(id)obj options:(NSJSONWritingOptions)opt error:(NSError **)error;

 

/**
 *  @brief 判断OC对象能否转为JSON数据
 *
 *  @param obj 指定要转换的数据
 *
 *  @return 返回结果
 */
+ (BOOL)isValidJSONObject:(id)obj;

例如:NSDictionary转为JSON数据

    NSDictionary *dict = @{@"Adfewefwefwfeewe":@"1121314", @"Bfewfwef":@"22345", @"Cfewfw":@"313245g"};
    
    // 判断 object 能否转为 JSON 数据
    NSData *dataDict = nil;
    if ([NSJSONSerialization isValidJSONObject:dict]) {
        dataDict = [NSJSONSerialization dataWithJSONObject:dict options:kNilOptions error:nil];
        NSLog(@"%@", dataDict);
    }

 

2.JSON类型数据转为OC对象

/**
 *  @brief JSON类型数据转为OC对象
 *
 *  @param data  指定要转的数据
 *  @param opt   指定枚举值
 *  @param error 错误
 *
 *  @return 返回转换结果NSArray或NSDictionary
 */
+ (nullable id)JSONObjectWithData:(NSData *)data options:(NSJSONReadingOptions)opt error:(NSError **)error;

例如:JSON类型数据转为OC对象

id result = [NSJSONSerialization JSONObjectWithData:dataDict options:kNilOptions error:nil];
    if ([result isKindOfClass:[NSDictionary class]]) {
        NSDictionary *resultDict = (NSDictionary *)resultDict;
    }

 

注:本例中均使用NSDictionary作为比较!其他对象转换自行测试!

 

参考文档:

NSJSONSerialization

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值