在 Swift 语言中更好的处理 JSON 数据:SwiftyJSON

SwiftyJSON能够让在Swift语言中更加简便处理JSON数据。

With SwiftyJSON all you have to do is:

?
1
2
3
4
let json = JSONValue(dataFromNetworking)
if let userName = json[0]["user"]["name"].string{
  //Now you got your value
}

And don't worry about the Optional Wrapping thing, it's done for you automatically

?
1
2
3
4
let json = JSONValue(dataFromNetworking)
if let userName = json[999999]["wrong_key"]["wrong_name"].string{
  //Calm down, take it easy, the ".string" property still produces the correct Optional String type with safety
}
?
1
2
3
4
5
6
7
8
let json = JSONValue(jsonObject)
switch json["user_id"]{
case .JString(let stringValue):
    let id = stringValue.toInt()
case .JNumber(let numberValue):
    let id = numberValue.integerValue
default:
    println("ooops!!! JSON Data is Unexpected or Broken")

Error Handling

?
1
2
3
4
5
6
7
8
9
10
11
12
let json = JSONValue(dataFromNetworking)["some_key"]["some_wrong_key"]["wrong_name"]
if json{
  //JSONValue it self confirm to Protocol "LogicValue", with JSONValue.JInvalid produce false and others produce true
}else{
  println(json)
  //> JSON Keypath Error: Incorrect Keypath "some_wrong_key/wrong_name"
  //It always tells you where your key starts went wrong
  switch json{
  case .JInvalid(let error):
    //An NSError containing detailed error information
  }
}

项目主页:http://www.open-open.com/lib/view/home/1404443275374

转载于:https://www.cnblogs.com/simadi/p/4392446.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/420046.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端学习(1426):ajax封装

ajax.js // 引用expess框架 const express require(express); // 处理路径 const path require(path);const bodyParser require(body-parser); const fs require(fs);// 创建网站服务器 const app express(); app.use(bodyParser.json()); app.get(/first, (req, res) &…

振子天线三维方向图 matlab仿真,1阵列天线方向图的MATLAB实现

阵列天线方向图的MATLAB实现第25卷第1期2010年6月西藏大学学报(自然科学版)JOURNALO&a…

前端学习(1427):ajax封装二

ajax.js // 引用expess框架 const express require(express); // 处理路径 const path require(path);const bodyParser require(body-parser); const fs require(fs);// 创建网站服务器 const app express(); app.use(bodyParser.json()); app.get(/first, (req, res) &…

深入理解css优先级

为什么要写这篇文章是因为 <style type"text/css"> body h1 {color: green; } html h1 {color: purple; } </style><body><h1>Here is a title!</h1> </body> 上面代码执行结果是这样的。按照我的理解&#xff0c;body在DOM中比…

php查询数据方法,php查询数据库的方法

php查询数据库的方法发布时间&#xff1a;2020-08-28 14:14:45来源&#xff1a;亿速云阅读&#xff1a;104作者&#xff1a;小新php查询数据库的方法&#xff1f;这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容…

powerdesigner 反向工程 oracle,PowerDesigner oracle 反向工程到cdm文件

用PowerDesigner反向工程来导处数据模型图是很方便的&#xff0c;以powerdesigner11 和oracle8i为例(其他版本略有不同)基本步骤如下&#xff1a;1&#xff0c;打开或新建一个PhysicalDataModel文件(.pdm) &#xff0c;(DBMS 是Sybase AS Anywhere 9 &#xff0c;或者下拉列表中…

前端学习(1428):ajax封装三

ajax.js // 引用expess框架 const express require(express); // 处理路径 const path require(path);const bodyParser require(body-parser); const fs require(fs);// 创建网站服务器 const app express(); app.use(bodyParser.json()); app.get(/first, (req, res) &…

前端学习(1429):ajax封装四

ajax.js // 引用expess框架 const express require(express); // 处理路径 const path require(path);const bodyParser require(body-parser); const fs require(fs);// 创建网站服务器 const app express(); app.use(bodyParser.json()); app.get(/first, (req, res) &…

oracle表分区失效14400,Oracle11g:分区表数据操作出现ORA-14400异常处理详解

Oracle11g&#xff1a;分区表数据操作出现ORA-14400异常处理问题&#xff1a;当对已分区的表数据进行操作(例如新增&#xff0c;修改)&#xff0c;出现异常提示&#xff1a;ORA-14400: 插入的分区关键字未映射到任何分区分析&#xff1a;意思说的是插入的数据没有相对应的分区来…

java中对map使用entrySet循环

根据JDK5的新特性,用For循环Map,例如循环Map的Key 123for(String dataKey : paraMap.keySet()) { System.out.println(dataKey ); }注意的是,paraMap 是怎么样定义的,如果是简单的Map paraMap new HashMap ();那前面的String就只能换成Object了.循環整個map的k…

oracle查询表字段和备注,Oracle 查询表信息(字段+备注)

获取表字段&#xff1a;select *from user_tab_columnswhere Table_Name‘用户表‘order by column_name获取表注释&#xff1a;select *from user_tab_commentswhere Table_Name‘用户表‘order by Table_Name获取字段注释&#xff1a;select *from user_col_commentswhere Ta…

前端学习(1430):ajax封装五

ajax.js // 引用expess框架 const express require(express); // 处理路径 const path require(path);const bodyParser require(body-parser); const fs require(fs);// 创建网站服务器 const app express(); app.use(bodyParser.json()); app.get(/first, (req, res) &…

VM虚拟机不能上网的问题解决

VM虚拟机不能上网的问题解决 源文&#xff1a;http://www.360doc.com/content/13/0827/13/1001775_310226875.shtml转载于:https://www.cnblogs.com/xiaohaizhuimeng/p/VM.html

前端学习(1431):ajax封装六

ajax.js // 引入express框架 const express require(express); // 路径处理模块 const path require(path); const bodyParser require(body-parser); const fs require(fs); // 创建web服务器 const app express();app.use(bodyParser.json());// 静态资源访问服务功能 …

c# 操作oracle数据库,C#连接oracle数据库增删改查实例

【实例简介】C#连接oracle数据库&#xff0c;增删改查实例&#xff0c;OracleParameter防Sql注入等&#xff0c;适用于新手学习【实例截图】【核心代码】5868e8be-414a-4138-8390-2fbbf9a1d530└── CS1├── CS1│ ├── app.config│ ├── bin│ │ ├── Debu…

毫秒级百万数据分页存储过程

然后创建分页存储过程;这个是基于SQL 2005 的ROW_NUMBER的, SQL 2000 不适用; SQL 2008 我没有安装,所以也没有测试过!估计应该可以运行. 2种算法可以选择 1. 使用 BETWEEN ; 2. TOP ; 代码中已经注释了. 我测试了一下2种方法基本没有什么区别;代码如下: 123456789101112…

oracle11连12c报权限错误,关于Oracle12c连接报错的问题

关于Oracle12c连接报错的问题这段时间因为项目原因&#xff0c;接触到了Oracle12C&#xff0c;其实问题很简单&#xff0c;就是pl/sql developer能够访问数据库服务端即可&#xff0c;却碰到了奇奇葩葩的问题&#xff0c;现分享一下。1、在java端报Ora-12505错误&#xff0c;即…

前端学习(1433):vue是什么

#### 1.1 Vue是什么> Vue.JS是优秀的前端 JavaScript 框架 > > react/angular/vue库和框架的区别:- 库(如jQuery)库是工具. 提供大量API&#xff0c;体现了封装的思想、需要自己调用这些API- 框架框架提供了一套完整解决方案,使用者要按照框架所规定的某种规范进行开发…

oracle10客户端tnsname,连接Oracle RAC 的tnsname.ora设置

由于Oracle数据库通常需要在不同地方被访问&#xff0c;所以Oracle开发人员必须搞清楚数据库性能如何被网络通讯所影响。由Oracle提供的TNS(Transparent Network Substrate)允许不同数据库之间的分布式通讯。作为一种分布式协议的TNS&#xff0c;允许远距离的系统之间的透明数据…