Я пытаюсь разобрать JSON, который может быть
"post" : {
"name" : “Test”,
"profiePic" : "thumb_small_1526912131.png",
"to_uni" : "0",
"id_user" : "2863",
"post_type" : "0",
"likes" : [
],
"tags" : [
],
"to_name" : “Vivek”,
"comments" : [
]
}
или он может быть следующего типа
"post" : {
"name" : “Test2”,
"profiePic" : "thumb_small_1533120835.png",
"to_uni" : "0",
"id_user" : "20393",
"post_type" : "0",
"likes" : {
"message" : “Vivek like this."
},
"tags" : [
],
"to_name" : “Vv”,
"comments" : [
]
}
Итак, для анализа этого с помощью JSONDecoder я создал структуру следующим образом
Кодируемая структура dpaste link
И расшифровывая этот json следующим образом
do {
let responses = try JSONDecoder().decode(Response.self, from: (response?.data!)!)
print(responses)
}catch{
print(error)
}
Но я получаю сообщение об ошибке только для значения лайков, которое Ожидается для декодирования массива, но вместо этого найдено словарь. потому что это значение, когда оно пустое, возвращает словарь, когда содержит значение, оно возвращает массив, поэтому как управлять этим типом случай в приведенной выше структуре?
var likes
. Но с пользовательской инициализацией я бы проверил, является ли в вашем JSON это один словарь или массив, и управлял случаем. - person Larme   schedule 10.09.2018Post
. - person Larme   schedule 11.09.2018self =
вместоself.likes =
3 раза. - person Larme   schedule 11.09.2018