JSON

  1. 如果JSON在本地
guard let url = Bundle.main.url(forResource: ,withExtension: )else{
fatalError("No url")
}

guard let data = Data(contentsOf:url) else{
fatalErroe("No data")
}
guard let dic = jsonSerialization.jsonObject(with:data,option[]) as? [String:Any] else{
fatalError("No dic")
}

guard let page = dic["page"] as? string else{
fatalError("No page")
}
  1. 使用自动解析
guard let = try? JsonDecoder().decode(NewsList.self,form:data) else{ // NewsList.self 为Codable类型的class,from后为要解析的数据
fatalErrot("No dic") 
}

import UIKit

class News: Codable {

    var title: String
    var content: String
    
    var readCount: Int {
        get { read_count }
        set { read_count = newValue }
    }
    private var read_count: Int // 与swift变量命名方式不同,设置为private属性,通过readCount的存储和获取属性来设置值

    var isBig: Bool {
        get { is_big ?? false } // 获取值
        set { is_big = newValue } // 设置值 newValue为传入的值
    }
    private var is_big: Bool?
}

class NewsList: Codable { //NewsList与JSON文件同名(误
    
    var page: Int
    var next: Bool
    var list: [News]
}

guard let jsonData = try? JSONEncoder().encode(list) else {
            fatalError("No JSON data")
        }
将解析完的数据变成json格式的数据
posted @ 2023-03-01 20:42  Travelever  阅读(33)  评论(0)    收藏  举报