美文网首页iosiOS开发工具iOS开发
iOS_黑(8)_SON数据处理,一条龙服务

iOS_黑(8)_SON数据处理,一条龙服务

作者: 丶纳凉 | 来源:发表于2016-08-03 23:02 被阅读404次

    一丶简介

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、C#、Java、JavaScript、Perl、Python等)。这些特性使JSON成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)。_摘抄自百度;

    iOS对JSON数据的处理,我把它分为以下几个步骤
    
    1.获取json数据;
    2.建立模型;
    3.连接数据;
    4.生成description
    

    二丶开始上干货

    1.获取JSON数据:

    1.1为了方便查看JSON数据可以使用以下网址:
    可以格式化JSON代码
    JSON在线解析及格式http://json.cn/
    JSON在线编辑器http://www.qqe2.com/

    示例数据
    {
      "array": [
        1,
        2,
        3
      ],
      "sex": true,
      "age": 12,
      "id":95757,
      "other": {
        "a": "b",
        "c": "d",
        "e": "f"
      },
      "speak": "Hello World"
    }
    

    2.建立模型

    这里介绍2种自动生成属性方式:
    2.1 插件
    ESJsonFormat :https://github.com/EnjoySR/ESJsonFormat-Xcode

    Paste_Image.png

    效果图展示:

    Paste_Image.png

    2.2Json-Property-Creat-Code

    Json-Property-Creat-Code
    这个功能比较强大
    json数据生成model 支持KVC,JSModel, model会自动归档 例如输入一个json数据网址,或者将返回的json数据放入展开的输入框中,再输入要生成的model名字,点击生成就可以在桌面上看到你所要的model 可以无限嵌套哦,总而言之,不需要你写一句代码,这个model可以直接使用

    效果图展示:

    Paste_Image.png Paste_Image.png

    好用,谁用谁知道;

    3.连接数据;

    3.1
    MJExtension(https://github.com/CoderMJLee/MJExtension)

    **1> 字典 -> 模型
    **2> 模型 -> 字典
    **3> 字典数组 -> 模型数组
    **4> 模型数组 -> 字典数组
    

    这个不多介绍了,里面介绍很详细,都是中文;
    提下,用到系统关键字处理方法:

    + (NSDictionary*)mj_replacedKeyFromPropertyName
    {   
    return@{@"theID":@"id"};
    }
    

    3.2
    还有一个YYKit
    这个也不错,但是解析速度没有MJExtension快;

    4.生成description

    思路:利用Runtime获取类的所有属性,然后遍历拼接成一个字符串;

    iOS_技巧(7)_自动生成description

    三丶扩展:

    1.有时候服务器返回的JSON中,某个字典是以字符串形式展示,以下扩展,直接使用,不用谢;

    @implementation NSString (Extension)
    - (NSDictionary *)dictionaryWithJsonString
    {
        if (self == nil)
        {
            return nil;
        }
        NSData *jsonData = [self dataUsingEncoding:NSUTF8StringEncoding];
        NSError *err;
        NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:&err];
    
        if (err)
        {
            Log(@"json解析失败:%@", err);
            return nil;
        }
        return dic;
    }
    
    @end
    

    相关文章

      网友评论

        本文标题:iOS_黑(8)_SON数据处理,一条龙服务

        本文链接:https://www.haomeiwen.com/subject/vkccsttx.html