在对象中保存JSON字符串

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (84)

我想将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,结果:“登录”,成功:真,令牌:“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对象中的另一种方法。我会非常感激,非常感谢!

提问于
用户回答回答于

你的编码密钥与字符串中的代码不相似

userRightsuser_rights

这样做:

struct Benutzer: Codable {
        let userRights: [String]

        enum CodingKeys: String, CodingKey {
            case userRights = "user_rights"
        }
    }

扫码关注云+社区

领取腾讯云代金券