导入
platform :ios, '9.0'
use_frameworks!
target 'videowallpaper' do
pod 'Kingfisher'
pod 'Alamofire'
pod 'SwiftyJSON'
end
使用
//
// ViewController.swift
// videowallpaper
//
// Created by liuan on 2020/6/11.
// Copyright 2020 liuan. All rights reserved.
//
import UIKit
import SwiftyJSON
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
let jsonString="""
{
"UserId": 1,
"UserName": "zhangsan",
"flowers": [{
"userId": 2,
"userName": "lisi"
}, {
"userId": 3,
"userName": "wangwu"
}]
}
"""
if let jsondata = jsonString.data(using: String.Encoding.utf8,allowLossyConversion: false){
let json = JSON(jsondata)
print(type(of: json))
print(json)
print( json["UserId"])
print( json["flowers"][0]["userName"])
print( json["flowers"][5]["userName"])
}
}
}
遍历json
if let jsondata = jsonString.data(using: String.Encoding.utf8,allowLossyConversion: false){
let json = JSON(jsondata)
print(type(of: json))
print(json)
print( json["UserId"])
print( json["flowers"][0]["userName"])
print( json["flowers"][5]["userName"])
for (key ,subJson) :(String,JSON) in json{
print("key is \(key),subJson is \(subJson)")
}
}
输出
2020-09-11 22:07:36.933596+0800 安果视频壁纸[5950:320340] [Storyboard] Unknown class Ma in Interface Builder file.
JSON
{
"UserName" : "zhangsan",
"UserId" : 1,
"flowers" : [
{
"userName" : "lisi",
"userId" : 2
},
{
"userName" : "wangwu",
"userId" : 3
}
]
}
1
lisi
null
key is UserName,subJson is zhangsan
key is UserId,subJson is 1
key is flowers,subJson is [
{
"userName" : "lisi",
"userId" : 2
},
{
"userName" : "wangwu",
"userId" : 3
}
]
也可以用来捕捉错误
let res = json["flowers"][5]["userName"]
if let name = res.string{
print(name)
}else {
print(res.error)
}
}
Optional(SwiftyJSON.SwiftyJSONError.indexOutOfBounds)
也可以使用StringValue
let res = json["flowers"][5]["userName"]
print(res.stringValue)
let res2 = json["flowers"][0]["userName"]
print(res2.stringValue)
有值返回对应值,没值返回空字符串
字典转换为json
func codeJson(){
let dict = ["1":2,"2":"two","3":nil] as [String : Any?]
let json = JSON(dict)
let respresentation = json.rawString([.castNilToNSNull:true])
print(respresentation)
}
结果
Optional("{\"1\": 2,\"3\": null,\"2\": \"two\"}")
|