swift json解析 JSONSerialization

4 篇文章 0 订阅

我们使用swift JSONSerialization进行解析
数据分为两种 “{}“和”[]”

一.数据格式为“{}”

import UIKit

let jsonstr="{\"status\":\"1\",\"data\":{\"udid\":\"5bce8b974adbc6a60858d41657f1761305f62ce9\",\"time\":\"1580546728\",\"orderid\":\"20200201164519672\"}}"
let jsondata = jsonstr.data(using: .utf8)


do {
    let ok =  try JSONSerialization.jsonObject(with: jsondata!, options: .mutableContainers) as AnyObject
    
    let status:String=ok["status"] as! String
    
    if(status=="1"){
    
        let jsonObject:AnyObject?=ok["data"] as! AnyObject
        if let jsonData = try? JSONSerialization.data(withJSONObject: jsonObject, options: []){
            
            let newStr = String(data: jsonData, encoding: String.Encoding.utf8)
            
            let ok =  try JSONSerialization.jsonObject(with: jsonData, options: .mutableContainers) as AnyObject
            
            print(ok["udid"] as! String)
            
        }
        
    }
    
} catch {
    print(error)
}

    

我们顺利udid的数据

5bce8b974adbc6a60858d41657f1761305f62ce9

二.数据格式为“[]”

import UIKit

let jsonstr="[{\"id\": 3},{\"id\": 5}]";
//let jsonstr = "[{\"name\":\"小炮\",\"age\":21},{\"name\":\"大头\",\"age\":21}]"

if let jsonData = jsonstr.data(using: .utf8){
    //一:原生解析方法
    //获取需要的内容,需要考虑数据是否存在,是否拆包
    let dicArr = try! JSONSerialization.jsonObject(with: jsonData, options: .allowFragments) as! [[String:AnyObject]]
                        print("打印所有数据:\(dicArr)")
    //                    print("原生获取name \(name)")
    var name:Int=dicArr[0]["id"] as! Int
    
    print(name)
}

结果:

打印所有数据:[["id": 3], ["id": 5]]
3
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值