KakaJSON可以只用一行代码将常用数据进行归档\解档
- 后面代码中会用到 file 文件路径
// 文件路径(String或者URL都可以)
let file = "/Users/yfmac001/Desktop//test.json"
1. String
// 文件路径(String或者URL都可以)
let file = "/Users/yfmac001/Desktop//test.json"
let string1 = "123"
// 将字符串写入文件
write(string1, to: file)
// 从文件中读取字符串
let string2 = read(String.self, from: file)
print(string2 ?? "")
// 123
2. Date
// 文件路径(String或者URL都可以)
let file = "/Users/yfmac001/Desktop//test.json"
let date1 = Date(timeIntervalSince1970: 1565922866)
// 将字符串写入文件
write(date1, to: file)
// 从文件中读取Date
let date2 = read(Date.self, from: file)
print(date2 ?? Date())
// 2019-08-16 02:34:26 +0000
3. Array
// 文件路径(String或者URL都可以)
let file = "/Users/yfmac001/Desktop//test.json"
let array1 = ["Jack", "Rose"]
// 将数组写入文件
write(array1, to: file)
// 从文件中读取数组
let array2 = read([String].self, from: file)
print(array2 ?? Array())
// ["Jack", "Rose"]
4. Model
// 文件路径(String或者URL都可以)
let file = "/Users/yfmac001/Desktop//test.json"
struct Book: Convertible {
var name: String = ""
var price: Double = 0.0
}
struct Car: Convertible {
var name: String = ""
var price: Double = 0.0
}
struct Dog: Convertible {
var name: String = ""
var age: Int = 0
}
struct Person: Convertible {
var name: String = "Jack"
var car: Car? = Car(name: "Bently", price: 106.666)
var books: [Book]? = [
Book(name: "Fast C++", price: 666.6),
Book(name: "Data Structure And Algorithm", price: 666.6),
]
var dogs: [String: Dog]? = [
"dog0": Dog(name: "Wang", age: 5),
"dog1": Dog(name: "ErHa", age: 3),
]
}
// 将模型写入文件
write(Person(), to: file)
// 从文件中读取模型
let person = read(Person.self, from: file)
print(person ?? Person())
/*
Person(name: "Jack", car: Optional(KKJson.ViewController.(unknown context at $1022e8f0c).(unknown context at $1022e8fc4).Car(name: "Bently", price: 106.666)), books: Optional([KKJson.ViewController.(unknown context at $1022e8f0c).(unknown context at $1022e8f54).Book(name: "Fast C++", price: 666.6), KKJson.ViewController.(unknown context at $1022e8f0c).(unknown context at $1022e8f54).Book(name: "Data Structure And Algorithm", price: 666.6)]), dogs: Optional(["dog1": KKJson.ViewController.(unknown context at $1022e8f0c).(unknown context at $1022e9024).Dog(name: "ErHa", age: 3), "dog0": KKJson.ViewController.(unknown context at $1022e8f0c).(unknown context at $1022e9024).Dog(name: "Wang", age: 5)]))
*/
5.Model Array
// 文件路径(String或者URL都可以)
let file = "/Users/yfmac001/Desktop//test.json"
struct Car: Convertible {
var name: String = ""
var price: Double = 0.0
}
let models1 = [
Car(name: "BMW", price: 100.0),
Car(name: "Audi", price: 70.0)
]
// 将模型数组写入文件
write(models1, to: file)
// 从文件中读取模型数组
let models2 = read([Car].self, from: file)
guard let models = models2 else {
return
}
for car: Car in models {
print(car)
}
/*
Car(name: "BMW", price: 100.0)
Car(name: "Audi", price: 70.0)
*/
6.Model Dictionary
// 文件路径(String或者URL都可以)
let file = "/Users/yfmac001/Desktop//test.json"
struct Car: Convertible {
var name: String = ""
var price: Double = 0.0
}
let models1 = [
"car0": Car(name: "BMW", price: 100.0),
"car1": Car(name: "Audi", price: 70.0)
]
// 将模型字典写入文件
write(models1, to: file)
// 从文件中读取模型字典
let models2 = read([String: Car].self, from: file)
guard let models = models2 else {
return
}
for (key, value) in models {
print("key:\(key) value:\(value)")
}
/*
key:car1 value:Car(name: "Audi", price: 70.0)
key:car0 value:Car(name: "BMW", price: 100.0)
*/
Swift 字典转模型(KakaJSON) ---1.基本用法
Swift 字典转模型(KakaJSON) ---2.数据类型
Swift 字典转模型(KakaJSON) ---3.key处理
Swift 字典转模型(KakaJSON) ---4.动态模型
Swift KakaJSON 05.---模型转字典
网友评论