0
다음은 완벽한 Json을 얻는 코드입니다.스위프트 4 Json 인코딩 및 디코딩
var str = "Hello"
var dictionary = ["key1":"val1", "key2":"val2", "key3":"val3"]
var products = [Product]()
struct Product: Codable {
var title: String
var reference: String
}
func createProducts(title: String, refer: String) {
products.append(Product(title: title, reference: refer))
}
for element in dictionary {
createProducts(title: element.key, refer: element.value)
}
var general = [str: products]
let encodedData = try? JSONEncoder().encode(general)
let json = String(data: encodedData!, encoding: .utf8)!
print(json)
My Json dict는 다음과 같습니다.
{"Hello":[{"title":"key2","reference":"val2"},{"title":"key3","reference":"val3"},{"title":"key1","reference":"val1"}]}
그리고 Json의 디코딩 후,이 부분 만 가져야합니다.
[{"title":"key2","reference":"val2"},{"title":"key3","reference":"val3"},{"title":"key1","reference":"val1"}]
"Hello"값을 얻으려면 아래의 디코더에서 문제가 있습니다.
if let decodedData = try! JSONDecoder().decode(general.self, from: json.data(using: .utf8)!) {
print(decodedData)
}