JSON之解析

JSON之解析

JSON之解析通过TouchJSON\SBJSON\JSONKit\NSJSONSerialization

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写,同时也易于机器解析和生成。格式:{ “firstName”: “a”,”secondName”:”b” }

 

NSJSONSerialization是iOS5开始自带的JSON解析API,且效率较高,解析的速度快

TouchJSON\SBJSON\JSONKit是第三方库

下载链接:

TouchJSON:https://github.com/TouchCode/TouchJSON

SBJSON:https://github.com/stig/json-framework

JSONKit:https://github.com/johnezang/JSONKit

在解析的效率上NSJSONSerialization>JSONKit>TouchJSON>SBJSON

以下是解析http://m.weather.com.cn/data/101010100.html,获得天气的不同方法

JSON内容是{“weatherinfo”:{
“city”:”北京”,”city_en”:”beijing”,”date_y”:”2013年3月9日”,,,,,,,,}}多层嵌套

一.NSJSONSerialization

解析方法:

NSDictionary *weatherDic=[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:&error];

案列:

 

JSON之解析

 

二.JSONKit

解析方法:

 

#import “JSONKit.h”

1.

JSONDecoder *decoder=[[JSONDecoder alloc]init];

NSDictionary *weatherDic=[decoder objectWithData:data];

2.

NSDictionary *weatherDic=[data objectFromJSONData];

案列:

JSON之解析

 

三.TouchJSON

解析方法:

 

#import “CJSONDeserializer.h”

NSDictionary *weatherDic=[[CJSONDeserializer deserializer]deserialize:data error:&error];

案列:

JSON之解析 

 

TouchJSON可以把对象转化为JSON:

 

#import “CJSONSerializer.h”

NSData *jsonData = [[CJSONSerializer serializer] serializeObject:dictionary  error:&error];

四.SBJSON

解析方法:

#import “SBJson.h”

SBJsonParser *parser=[[SBJsonParser alloc]init];

NSDictionary *weatherDic=[parser objectWithData:data];

案列:

JSON之解析

 

转自http://my.oschina.net/LouWk/blog/112701

 

转载于:https://www.cnblogs.com/jiangshiyong/p/3173624.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/110084.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Unity3d菜鸟入门的学习路线–笔记1

    Unity3d菜鸟入门的学习路线–笔记1最近刚刚开始接触unity3d,因此想把自己的学习路线记录下来,方便自己以后总结。由于毕业论文的关系,需要使用Unity3D开发,做虚拟现实的应用,使用的设备是HTCvivepro产品。初始学习,由于没有基础,因此一团乱,总结一下目前看过的教程和书籍。1、开始看的是b站上极客学院讲解的unity3d的入门课程,对操作的界面有了初步的了解,不需要看完,看到编程之前就可以。2、由于需要使用C#编程…

    2025年11月12日
    7
  • Root apk 2021_proguard混淆jar包

    Root apk 2021_proguard混淆jar包backdoor-apk从名字上我们就能知道它的用途了,没错就是用来制作APK后门的。这款工具使用起来非常方便,而且功能也很强大!话不多说,下面我们直接进入正题。首先,让我们对它进行安装,在安装前我们需要先安装它的一些依赖lib库文件:apt-getinstalllib32stdc++6lib32ncurses5lib32z1这里询问我们,对这些安装的服务,当他们更新时不再进行询…

    2022年8月20日
    10
  • RSA加密算法的java实现

    RSA加密算法的java实现最近有一个外部合作项目要求在数据传输过程中使用RSA加密算法对数据进行加密,所以需要编写一个加解密的工具类,因为对方不是java语言,所以是各自实现的这个工具,本文主要讨论实现以及双方调试过程中的一些插曲,希望给大家不要再次踩坑。关于加解密的核心部分,网上有很多博主都有实现过,我也是参考了一些博主的方法自己实现了一个加解密的工具。packagecom.chen.test;importorg.

    2022年5月1日
    41
  • Http通过header传递参数_html header标签

    Http通过header传递参数_html header标签Content-Type原文链接HttpHeader里的Content-Type一般有这三种:application/x-www-form-urlencoded:数据被编码为名称/值对。这是标准的编码格式。multipart/form-data:数据被编码为一条消息,页上的每个控件对应消息中的一个部分。text/plain:数据以纯文本形式(text/json/xml/html)进…

    2022年8月24日
    8
  • 0xffffffff在不同情况下的输出[通俗易懂]

    0xffffffff在不同情况下的输出[通俗易懂]问题起源于next_random=next_random*(unsignedlonglong)25214903917+11;k1=(next_random&0xFFFF):保留next_random的低16位(最大65535);&0xFFFF引起了我的兴趣,发现这个的操作是取低16位。然后我百度了下。发现。low16=(unsigneds…

    2022年5月17日
    73
  • 【NLP】之 结巴分词

    【NLP】之 结巴分词1.结巴分词简介结巴分词是当前效果较好的一种中文分词器,支持中文简体、中文繁体分词,同时还支持自定义词库。结巴分词支持三种分词模式:精确模式、全模式和搜索引擎模式。精确模式是试图将句子最精确的进行切分,适合用于文本分析; 全模式的原理是把句子中全部可以成词的词语全部扫描出来,它的分词速度快,缺点是无法识别歧义词句; 搜索引擎模式是在精确模式的基础上进一步处理的,它对较长的词语再进…

    2022年6月17日
    28

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号