我正在嘗試將 a 編碼[[String : String]]為 JSON 嵌套物件JSONEncoder()。
Swift 輸出示例:
[["firstName": "John", "lastName": "Doe"], ["firstName": "Tim", "lastName": "Cook"]]
JSON 編碼后的預期輸出:
[
{
"firstName": "John",
"lastName": "Doe"
},
{
"firstName": "Tim",
"lastName": "Cook"
}
]
我將如何遍歷這個字典陣列,然后用 對其進行編碼JSONEncoder().encode()?非常感謝!
uj5u.com熱心網友回復:
JSONEncoderData默認為您提供。要使其恢復String原狀,您可以使用以下命令:
let input = [["firstName": "John", "lastName": "Doe"], ["firstName": "Tim", "lastName": "Cook"]]
do {
let json = try JSONEncoder().encode(input)
print(String(decoding: json, as: UTF8.self))
} catch {
print(error)
}
其中產生:
[{"firstName":"John","lastName":"Doe"},{"firstName":"Tim","lastName":"Cook"}]
uj5u.com熱心網友回復:
使用Codable到編碼/解碼JSON資料。首先,將 JSON 轉換為這樣的物件,如果您使用更多欄位進行更新會更容易:
struct Person: Codable {
var firstName: String
var lastName: String
}
假設你有一個Person陣列
var persons = [Person]()
persons.append(.init(firstName: "John", lastName: "Doe"))
persons.append(.init(firstName: "Tim", lastName: "Cook"))
//PRINT OUT
let jsonData = try! JSONEncoder().encode(persons)
let jsonString = String(data: jsonData, encoding: .utf8)
這是輸出:
"[{"firstName":"John","lastName":"Doe"},{"firstName":"Tim","lastName":"Cook"}]"
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/336449.html
