Как мне создать модель Struct после этого JSON? - PullRequest
0 голосов
/ 13 июня 2018

Вот мой JSON:

https://pastebin.com/8HR6jcuC

Вот модель, которую я создал, хотя ее не удалось декодировать:

struct Response: Decodable {
    let results: [Order]
}

struct Order: Decodable {
    let charge_id: String
    let createdAt: String
    let items_bought : [BoughtItems]
    let objectId: String
    let soldBy: String
    let total: String
    let status: String
}

struct BoughtItems: Decodable {
    let price: Int
    let productTitle: String
    let quantity: Int
    let variantId: Int
    let variantTitle: String
}

1 Ответ

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

Пожалуйста, поймайте ошибку и исправьте ее.Codable ошибки очень описательны.

Несоответствие типа 'Int': ожидается декодирование Int, но вместо этого найдена строка / данные.

codingPath: [CodingKeys (stringValue: "results", intValue: nil), _JSONKey (stringValue:" Index 0 ", intValue: 0), CodingKeys (stringValue:" items_bought ", intValue: nil), _JSONKey (stringValue:" Index 0 ", intValue: 0), CodingKeys (stringValue: "цена", intValue: ноль)]

ясно говорит, что price в BoughtItems означает String, а не Int.

После замены let price: Int с let price: String вы получите еще одну ошибку

Несоответствие типа 'String': ожидается декодирование String, но вместо этого найдено число.

codingPath: [CodingKeys (stringValue: "results", intValue: nil), _JSONKey (stringValue: "Index 0", intValue: 0), CodingKeys (stringValue: "total", intValue: nil)]

, что тоже очень понятно.Тип total - Double, а не String

Исправление: let total: Double


Пожалуйста, научитесь читать JSON.Все очень просто:

  • Все в двойных кавычках ( no исключение) равно String
  • Числовые значения с плавающей запятой Double
  • Другие числовые значения Int.
  • true или false (без двойных кавычек) составляет Bool
...