Swift Codable - синтаксический анализ JSON, который содержит тип массива или словаря, не подтверждающий

Я пытаюсь разобрать 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)
            }

Но я получаю сообщение об ошибке только для значения лайков, которое Ожидается для декодирования массива, но вместо этого найдено словарь. потому что это значение, когда оно пустое, возвращает словарь, когда содержит значение, оно возвращает массив, поэтому как управлять этим типом случай в приведенной выше структуре?


person Vivek Goswami    schedule 10.09.2018    source источник
comment
Я бы объявил массив словарей для var likes. Но с пользовательской инициализацией я бы проверил, является ли в вашем JSON это один словарь или массив, и управлял случаем.   -  person Larme    schedule 10.09.2018
comment
Только одно значение, когда оно содержит сообщение: «Вивеку нравится это. а как массив @Larme   -  person Vivek Goswami    schedule 10.09.2018
comment
куда это положить? @Ларме   -  person Vivek Goswami    schedule 11.09.2018
comment
Это пользовательский метод инициализации. Поместите его в структуру Post.   -  person Larme    schedule 11.09.2018
comment
это дает мне ошибку, см. это изображение ibb.co/h14Xep @Larme   -  person Vivek Goswami    schedule 11.09.2018
comment
Вы написали self = вместо self.likes = 3 раза.   -  person Larme    schedule 11.09.2018
comment
Давайте продолжим обсуждение в чате.   -  person Vivek Goswami    schedule 11.09.2018