Разбор JSON с JSONDecoder в Swift 5 с использованием структур - PullRequest
0 голосов
/ 23 июня 2019

Я получаю от Rest API результат в формате json. Теперь я хочу проанализировать этот JSON с помощью JSONDecoder, но я не совсем понимаю структуру моего ответа.

Для этого я уже пытался создать структуры, чтобы получить «имя» «FirstUser».

{  
   "User":[  
      {  
         "FirstUser":{  
            "name":"John"
         },
         "Information":"XY",
         "SecondUser":{  
            "name":"Tom"
         }

1 Ответ

1 голос
/ 23 июня 2019

Json

{
    "User":[
      {
        "FirstUser":{
        "name":"John"
        },
       "Information":"XY",
        "SecondUser":{
        "name":"Tom"
      }
     }
   ]
}

Модель

// MARK: - Empty
struct Root: Codable {
    let user: [User]

    enum CodingKeys: String, CodingKey {
        case user = "User"
    }
}

// MARK: - User
struct User: Codable {
    let firstUser: FirstUserClass
    let information: String
    let secondUser: FirstUserClass

    enum CodingKeys: String, CodingKey {
        case firstUser = "FirstUser"
        case information = "Information"
        case secondUser = "SecondUser"
    }
}

// MARK: - FirstUserClass
struct FirstUserClass: Codable {
    let name: String
}

Разобрать

do {
    let res = try JSONDecoder().decode(Root.self, from: data) 
    print(res.first?.firstUser.name)
} catch {
    print(error)
}
...