[英]Convert array of custom object to String in swift4
我是Swift新手,在將自定義對象數組轉換為String時遇到問題。
這是我的回應類門票
public struct Tickets: Codable {
public let name: String!
public let status: String!
public let department: String!
}
在webservice調用之后,我得到以下響應,它將被映射到Tickets類。 現在,我有一個“票證”數組,如下面所述的[票證]。
"tickets": [
{
"name": "d5b5d618-8a74-4e5f",
"status": "VALID",
"department": "IT"
},
{
"name": "a58f54b5-9420-49b6",
"status": "INVALID",
"department": "Travel"
}
]
現在,我可以將[Tickets]
數組轉換為String嗎? 如果是這樣,怎么辦? 另外,如何從String
類中以[Tickets]
獲取它。
我想將其轉換為String后將其存儲到UserDefaults中,並在以后檢索
首先:
如果應該在init
方法中初始化屬性或成員,請不要將結構或類中的屬性或成員聲明為隱式未包裝的可選屬性。 如果它們可能為nil
則將它們聲明為常規可選( ?
),否則聲明為非可選(是的,如果沒有問題或感嘆號,編譯器將不會抱怨)。
只需使用JSONDecoder()
和JSONEncoder()
對JSON進行解碼和編碼
let jsonTickets = """
{"tickets":[{"name":"d5b5d618-8a74-4e5f","status":"VALID","department":"IT"},{"name":"a58f54b5-9420-49b6","status":"INVALID","department":"Travel"}]}
"""
public struct Ticket: Codable {
public let name: String
public let status: String
public let department: String
}
do {
let data = Data(jsonTickets.utf8)
let tickets = try JSONDecoder().decode([String:[Ticket]].self, from: data)
print(tickets)
let jsonTicketsEncodeBack = try JSONEncoder().encode(tickets)
jsonTickets == String(data: jsonTicketsEncodeBack, encoding: .utf8) // true
} catch {
print(error)
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.