【发布时间】:2018-06-07 20:47:44
【问题描述】:
我想将 JSON 字符串保存到 Swift 中的现有对象中:
这是我的对象:
struct Benutzer : Decodable, Encodable{
let userRights: [String]
}
这是我的字符串:
str = "{"user_rights":["terminal_create"]}"
这是我的代码:
do { let data1 = str.data(using: String.Encoding.utf8, allowLossyConversion: false)
let User = try JSONDecoder().decode(Benutzer.self, from: data1 as Data)
print(User)
}catch{
print("Error serializing!")
}
使用此代码,“序列化错误!”每次都出现。各位知道怎么回事吗?对不起,我仍然是一个完整的初学者。抱歉没有格式化我不太明白的问题:(我从另一个 JSON 请求中得到这个字符串:我得到这个作为答案,我想要解码的 JSON 数据字符串是该答案的一部分:
Answer(api_version: 1, result: "login", success: true, token: "da39a3ee5e6b4b0d3255bfef95601890afd80709", data: "{\"user_rights\":[\"terminal_create\"]}")
这是一个答案对象:
struct Answer: Decodable, Encodable{
let api_version: Int
let result: String
let success: Bool
let token: String
let data: String
}
也许您知道如何将数据提取到 Benutzer 对象中的另一种方法。 我真的很感激,非常感谢你们!
【问题讨论】:
-
向我们展示
str的确切值。并在您的catch:print("Error serializing: \(error)")中打印错误。 -
str = String = "{"user_rights":["terminal_create"]}"
-
错误序列化:keyNotFound(CodingKeys(stringValue: "userRights", intValue: nil), Swift.DecodingError.Context(codingPath: [], debugDescription: "No value associated with key CodingKeys(stringValue: \ "userRights\", intValue: nil) (\"userRights\").", underlyingError: nil))
标签: json swift string serialization encoding