我想将JSON-String保存到Swift中的现有Object中:
这是我的对象:
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数据字符串是答案的一部分:
答案(api_version:1,结果:“登录”,成功:true,令牌:“da39a3ee5e6b4b0d3255bfef95601890afd80709”,数据:“{\”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对象中的另一种方法。 我真的很感激,非常感谢你们!
答案 0 :(得分:1)
您的编码密钥与字符串userRights
,user_rights
所以这样做:
struct Benutzer: Codable {
let userRights: [String]
enum CodingKeys: String, CodingKey {
case userRights = "user_rights"
}
}