Сохранить строку JSON в объекте - PullRequest
0 голосов
/ 07 июня 2018

Я хочу сохранить 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, результат: "вход в систему", успех: 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. Я был бы очень благодарен, большое спасибо, ребята!

1 Ответ

0 голосов
/ 07 июня 2018

ваш кодовый ключ не похож на тот, что в вашей строке userRights, user_rights

, вот так:

struct Benutzer: Codable {
        let userRights: [String]

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