zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    二级python两种不同处理方式统计字频
    二级python提纯文件中的原文(去掉小括号,注释等)
    二级python处理文件并计数
    二级python对字频统计
    matlab实现跨表自动对应标题填写数据
    用matlab对excel中数据选择性染色
    最短路径查找—Dijkstra算法
    BP实现函数拟合
    BP应用案例
    Matlab实现BP神经网络预测(附实例数据及代码)
  • 原文地址:https://www.cnblogs.com/xiu619544553/p/5433312.html
Copyright © 2011-2022 走看看