Swift 4 Codable; How to decode object with single root-level key
I'm using the Swift 4 Codable protocol with JSON data. My data is formatted such that there is a single key at the root level with an object value containing the properties I need, such as: { "user": { "id": 1, "username": "jdoe" } } I have a User struct that can decode the user key: struct User: Codable { let id: Int let username: String } Since id and username are properties of user , not at the root level, I needed to make a wrapper type like so: struct UserWrapper: Codable { let user: User } I can then decode the JSON via the UserWrapper , and the User is decoded also. It seems like a lot