респонсов?
{"error_messages":{"type":[{"code":"invalid_type","message":"Invalid Payment type"}]}
{"error_messages":{"base":{"code":"payment_can_not_be_deleted","message":"Sorry..."}}}
ErrorMessage struct {
Code string json:"code,omitempty"
Message string json:"message,omitempty"
}
ErrorResponse struct {
ErrorMessages map[string][]*ErrorMessage json:"error_messages,omitempty"
}
Пробовал через UnmarshalJSON с проверкой типа, но что то совсем не получается, буду благодарен за любые идеи.
что значит с проверкой типа?
прверку типа на массив или нет (если только одна ошибка содержится), если нет, то приводить к такой стуктуре путем создания массива с одним элементом: map[string][]*ErrorMessage
а ты уверен что там должна быть мапа а не конкретная структура?
два респонса я для примера привел, "type" и "base" - это по сути коды field_id и они динамические, могут быть разные.
могут быть разные если меньше 20 то я б структуру сделал
Делай Unmarshal в одну структуру. Если ошибка - в другую. Или реализуй свой метод UnmarshalJSON и приведи к одному типу
по поводу проверки на ошибки думал, но как то топорно по-моему. поэтому пробую привести к одному типу - массиву.
да, топорно, но зато просто можно попробовать первый токен прочитать и в зависимости от него в нужный тип анмаршалить
Обсуждают сегодня