Swift 利用JSONEncoder將Object轉換成JSON格式資料
xcode 13.4.1, swift 5.5, iOS 15.4
2022-09-06
JSON是很常用到的檔案格式,而在很多程式語言中都要相應的library可以拿來使用,Swift也不例外,Swift已內建了JSONEncoder來幫忙將Object轉換成JSON格式資料,不需要額外的library。
1. 假設以下的Object list,可將其轉成JSON String,並用Text元件顯示出來:
import SwiftUI
struct Fruit: Codable {
let name : String
let number : Int
}
struct JSONExample : View {
@State var fruits : [Fruit] = [
.init(name: "Apple", number: 11),
.init(name: "Banana", number: 22),
.init(name: "Cat", number: 33),
.init(name: "Dog", number: 44)
]
@State var jsonData : String = ""
var body: some View {
Text(jsonData)
.onAppear {
do {
let encoder: JSONEncoder = JSONEncoder()
let encoded = try encoder.encode(fruits)
guard let jsonData = String(data: encoded, encoding: .utf8) else {
return
}
self.jsonData = jsonData
} catch let error {
print(error)
}
}
}
}
在通常我們轉換成JSON資料後會把其保存起來,比如保存到檔案中。可以參考另一篇文章
SwiftUI 使用FileManager讀取和保存檔案的方法 如何使用檔案的讀存。