zoukankan      html  css  js  c++  java
  • 浅度围观SBJson

    JSON

         JSON是一种取代XML的数据结构,和xml相比,它更小巧但描述能力却不差,由于它的小巧所以网络传输数据将减少更多流量从而加快速度,

    那么,JSON到底是什么?

     JSON就是一串字符串 只不过元素会使用特定的符号标注。

    {} 双括号表示对象

    [] 中括号表示数组

    "" 双引号内是属性或值

    : 冒号表示后者是前者的值(这个值可以是字符串、数字、也可以是另一个数组或对象)

        所以 {"name": "Michael"} 可以理解为是一个包含name为Michael的对象

    而[{"name": "Michael"},{"name": "Jerry"}]就表示包含两个对象的数组

    当然了,你也可以使用{"name":["Michael","Jerry"]}来简化上面一部,这是一个拥有一个name数组的对象

     

        ps:现在还有很多人存在一些误区,为什么{name:'json'}在检验时通过不了,

             那是因为JSON官网最新规范规定

             如果是字符串,那不管是键或值最好都用双引号引起来,所以上面的代码就是

            {"name":"json"}

             不要反驳,官网就是这么定义的。

    SBJson 

    简介

       SBJson 是 Objective-C 实现的一个 JSON 解析器和生成器

    特点 

       主要特性:
       采用 New BSD 开源许可.
       易用的 API 设计
       支持流,详情请看 API docs 中的 SBJsonStreamParser
       格式友好的 JSON 输出
       输出 JSON 的键是经过排序的
       可配置的解析和输出的最大递归深度
       纯 Objective-C.
       无需第三方包依赖。
     

    用法  

         其实说白了 JSON无非就是一种字符串的结构。。。 那么在IPHONE开发中,使用最多的JSON解析库就是 SBJson。。。

         在这里可以得到 SBJson:http://stig.github.com/json-framework/

        3.1版本及以上,它将支持ARC。下载下来后,解压缩,然后把Class目录下的所有文件导入项目中。

         在使用SBJson时候,首先:

    1 #import "SBJson.h"
    2 NSString *jsonStr = @"{"name":"jia","age":"24"}";
    3 NSString *jsonStr2 = @"["1","2"]";
    4 SBJsonParser *jsonParser = [[SBJsonParser alloc] init];
    5 NSMutableDictionary *dict = [jsonParser objectWithString:jsonStr];
    6 NSLog(@"%@",dict);
    7 NSMutableArray *arr = [jsonParser objectWithString:jsonStr2];
    8 NSLog(@"%@",arr);
    9 [jsonParser release];

        可以看到,无论是数组还是字典,都使用

    objectWithString

    来解析

    补充

        从IOS5开始,APPLE提供了对json的原生支持(NSJSONSerialization),但是为了兼容以前的ios版本,可以使用第三方库来解析Json。

    除了SBJson之外,还有TouchJson、 JSONKit 等。

     

     

  • 相关阅读:
    HTML5 闹钟例子程序
    程序员书籍,你值得收藏
    mybatis入门案例测试常见问题以及解决方法
    jquery对Select标签的操作
    Linux下mysql整库备份
    Windows 命令提示符下查看 apache 错误的方法
    将 DataTable 转化为 Excel Xml 格式供下载
    Infragistics netadvantage UltraGrid (UltraWinGrid) 编程手记
    报表设计技巧交叉报表模板
    Gentle.NET Users' Guide
  • 原文地址:https://www.cnblogs.com/xiaochunle/p/3844448.html
Copyright © 2011-2022 走看看