我想将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数据字符串是这个答案的一部分:
答案(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对象中的方法。我真的会很感激,非常感谢大家!
发布于 2018-06-08 04:56:30
您的编码键与字符串userRights
中的不同,user_rights
所以你可以这样做:
struct Benutzer: Codable {
let userRights: [String]
enum CodingKeys: String, CodingKey {
case userRights = "user_rights"
}
}
https://stackoverflow.com/questions/50749939
复制相似问题