swift swiftJson 解析json

导入

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\"}")

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

安果移不动

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值