作为一种轻量级的数据交换格式,json正在逐步取代xml,成为网络数据的通用格式。
从IOS5开始,APPLE提供了对json的原生支持(NSJSONSerialization),但是为了兼容以前的ios版本,可以使用第三方库来解析Json。
本文将介绍TouchJson、 SBJson 、JSONKit 和 iOS5所支持的原生的json方法,解析国家气象局API,TouchJson和SBJson需要下载他们的库
PS:
国家气象局提供的天气预报接口
接口地址有三个:
第三接口信息较为详细,提供的是6天的天气,全国各城市对应这一个id号,根据改变id好我们就可以解析出来各个城市对应天气;
下面介绍四种方法解析JSON:
首先建立一个新的工程,(注意不要选择ARC机制)添加如下控件:
如上图所示。下面展出程序代码:
文件 ViewController.h 中:
[cpp]view plaincopy
文件ViewController.m中主要代码:
(1)使用TouchJSon解析方法:(需导入包:#import "TouchJson/JSON/CJSONDeserializer.h")
[cpp]view plaincopy
(2)使用SBJson解析方法:(需导入包:#import "SBJson/SBJson.h")
[cpp]view plaincopy
(3)使用IOS5自带解析类NSJSONSerialization方法解析:(无需导入包,IOS5支持,低版本IOS不支持)
[cpp]view plaincopy
(4)使用JSONKit的解析方法:(需导入包:#import "JSONKit/JSONKit.h")
[cpp]view plaincopy
另外,由于iOS5新增了JSON解析的API,我们将其和其他五个开源的JSON解析库进行了解析速度的测试,下面是测试的结果。
我们选择的测试对象包含下面的这几个框架,其中NSJSONSerialization是iOS5系统新增的JSON解析的API,需要iOS5的环境,如果您在更低的版本进行测试,应该屏蔽相应的代码调用。
.....
测试的结果显示,系统的API的解析速度最快,我们在工程项目中选择使用,也是应用较为广泛的SBJSON的解析速度为倒数第二差,令我大跌眼镜。
与系统API较为接近的应该是JSONKit。
这里没有对API的开放接口和使用方式进行比较,若单纯基于以上解析速度的测试:
1:iOS5应该选择系统的API进行
2:不能使用系统API的应该选择JSONKit
OPENJSON 要求兼容性级别 130,即SQLSERVER2016以上版本1、默认输出的 OPENJSON在不提供结果的显式架构的情况下使用 OPENJSON 函数时(在 OPENJSON 之后不使用 WITH 子句),该函数将返回包含以下三列的表:输入对象中属性的名称(或输入数组中元素的索引)。属性或数组元素的值。类型(例如,字符串、数字、布尔值、数组或对象)。OPENJSON 以单独的行返
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于ECMAScript的一个子集,采用完全独立于语言的文本格式来存储和表示数据。Python中提供了多种方式来读取和处理JSON文件,本文将详细介绍四种常见的方法,并附带案例和代码,帮助新手朋友快速上手。一、使用json模块的load()方法Python的json模块提供了丰富的函数来解析和处理JSON
在绝大多数业务场景中,分布式数据库并非必需。事实上,约80%的应用程序都可以在单机环境下高效运行。对于绝大多数企业而言,数据库的数据量通常不会达到 TB 级别。在现代应用开发中,json 已成为数据交换和存储的常见格式。尽管 MongoDB 因其天然支持 json 而备受推崇,但 MySQL 也提供了强大的 json 数据类型支持,能够高效地处理 json 数据。在本指南中,我们将探讨如何使用My
JSON 什么是JSON?JSON是一种轻量级的数据格式,一般用于数据交互。服务器返回客户端的数据,一般都是JSON格式或者是XML格式(文件下载除外)。JSON 语法是 JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔花括号保存对象方括号保存数组JSON的格式很像OC中的字典和数组{"name" : "jack", "age" : 10}{"names" : ["j
将Json存进本地文件夹 NSArray *paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *path=[paths objectAtIndex:0]; NSStri
作为一种轻量级的数据交换格式,json正在逐步取代xml,成为网络数据的通用格式。从IOS5开始,APPLE提供了对json的原生支持(NSJSONSerialization),但是为了兼容以前的ios版本,可以使用第三方库来解析Json。本文将介绍TouchJson、 SBJson 、JSONKit 和 iOS5所支持的原生的json方法,解析国家气象局API,TouchJson和SBJson需
JSON数据格式 1. 概述: JSON (JavaScript Object Notation) 是⼀一种轻量级的数据交换格式 基于⽂文本格式,易于⼈人阅读和编写,同时也易于机器解析和⽣生成。 2. JSON 数据的书写格式是:名称/值 • 名称写在前⾯面(在双引号中) • 值对写在后⾯面 • 中间⽤用冒号隔开 3. JSON 值⽀支持类型 数字(整数或浮点数) 字
国家气象局提供的天气预报接口 全国各城市对应这一个id号,根据改变id好我们就可以解析出来各个城市对应天气;Json以其轻巧简单成为较为流行文件格式,在手机上传输比XML快,iOS5以前苹果公司并没有对Json解析提供库文件支持,但是好在有一些大牛们专门为Objective-c只做了能够解析Json文件的库,iOS苹果公司提供了对json的原生支持类NSJSONSerialization;本文将
1、PCM格式介绍: PCM(Pulse Code Modulation)也被称为 脉码编码调制。PCM中的声音数据没有被压缩,如果是单声道的文件,采样数据按时间的先后顺序依次存入。(它的基本组织单位是BYTE(8bit)或WORD(16bit)) 2、WAV格式 1)格式介绍: WAVE文件格式是Microsoft的RIFF规范的一个子集,
JSON的由来JSON是一种轻量级的数据交换格式,前端是离不开JSON的,JSON采用完全独立于编程语言的文本格式来存储和表示数据。在目前的开发中,JSON是一种非常重要的数据格式,它并不是编程语言,而是一种可以在服务器和客户端之间传输的数据格式。 JSON的全称是JavaScript Object Notation(JavaScript对象符号)JSON是由Douglas Crockford构想
iOS APP可以在自己的沙盒里读写文件,但是,不可以访问其他APP的沙盒。每一个APP都是一个信息孤岛,相互是不可以进行通信的,唯独可以通过URL Scheme。沙盒里面的文件可以是照片、声音文件、文本、属性列表等。沙盒机制简介沙盒简述:每一个APP都有一个存储空间,就是沙盒。APP之间不能相互通信。沙盒根目录结构:Documents、Library、temp。简述一下Documents、Lib
AI是Adobe Illustrator的文件扩展名,是一种矢量图形文件格式。Adobe Illustrator是一种流行的基于矢量图形的绘图程序。AI格式是一个严格限制的,高度简化的EPS子集。AI代表Adobe Illustrator。今天来学习他的基础界面认知吧 需要的伙伴不要错过。主屏幕 启动Illustrator时,将显示主屏幕,其中包括以下内容:广泛的教程可帮助您快速学习和理解概
关于手机开发的一些比较基础的知识 Java扩展Java是由Sun微系统公司所发展出来的程序语言,它本身是一种对象导向(Object-Oriented)的程序语言。JAVA目前在手机上应用最多的就是JAVA游戏。Java也号称是能跨平台使用的语言,这主要是因为Java本身被编译之后,并不是直接产生可执行的码,而是产生一种中间码叫作 ByteCode,这种码必需在透过 Java 的直译器来解读它,才
在去年的时候我建立了自己的GitHub账号,但是从未真正用过,最近正好想起,像试试其效果如何,结果出乎我的意料。 我也知道了为什么这么多人都选择使用GitHub: 版本控制:完整记录每次代码变更,便于回溯和协作 协作开发:支持多人同时参与项目,解决冲突,提高效率 开源社区:海量开源项目可供学习参考, ...
一、Cat-1:平衡速率与成本的4G手艺核心区别:速率:下行10Mbps,上行5Mbps,支持语音通话(VoLTE)。功耗:低于Cat.4,高于NB-IoT。成本:介于NB-IoT和Cat.4之间,模块成本约50-100元。网络:依赖4G基站,覆盖广但需运营商承受。应用场景:共享经济:共享单车、充电 ...
Handdle AI摄像头外观检测方案,重新定义手机摄像头零缺陷标准,助力品牌实现“开窗即颜值”的完美成像体验。
在昨天的内容里,我们已经围绕 Subword 分词体系中最基础的两类算法 ——BPE(字节对编码)与 BBPE(双向字节对编码)展开了详细拆解:从 BPE 的 “训练 - 编码” 核心逻辑切入,用具体案例还原了它如何通过迭代合并高频字节对构建词汇表,也分析了其在控制词汇表规模、处理未登录词上的优势与 ...
本文介绍了一个银行储蓄管理平台的系统设计与实现。系统采用Java等主流技术开发,包含用户管理、账户管理、存款、取款、转账、挂失、销户等功能模块。详细阐述了数据库设计,包括8张核心数据表(管理员、用户、账户、存款、取款等)的结构和字段信息。通过功能结构图和ER图展示了系统架构,并提供了各模块的界面实现效果图,如用户管理、账户管理、存款/取款操作等界面。系统实现了完整的银行储蓄业务功能,包括账户增删改查、资金存取转等核心业务流程,可为银行信息化建设提供参考。