Size: a a a

2020 February 17

а

а кто это in Go-go!
Александр Парамонов
Если таких полей больше, чем 1, то кол-во парсинга увеличивается в геометрической прогрессии
парсить в map[string]interface{} и ручками разбирать
источник

ЛА

Локоть Анатолий in Go-go!
Александр Парамонов
Если таких полей больше, чем 1, то кол-во парсинга увеличивается в геометрической прогрессии
Вот это не очень понятно. Как я понимаю, все равно 2 типа структур - мапа и пустой слайс.
источник

АП

Александр Парамонов in Go-go!
map[string]interface{} тоже быдет валиться
источник

DP

Daniel Podolsky in Go-go!
а кто это
запилить свой Unmarshall  с проверкой
валиндный вариант только этот
источник

DP

Daniel Podolsky in Go-go!
Александр Парамонов
map[string]interface{} тоже быдет валиться
с чего бы?
источник

АП

Александр Парамонов in Go-go!
потому что в ответе не мапа, а слайс
источник

а

а кто это in Go-go!
Александр Парамонов
map[string]interface{} тоже быдет валиться
корневой обжект
источник

АП

Александр Парамонов in Go-go!
а, в корне?
источник

а

а кто это in Go-go!
да
источник

АП

Александр Парамонов in Go-go!
ужс
источник

DP

Daniel Podolsky in Go-go!
а кто это
парсить в map[string]interface{} и ручками разбирать
на самом деле - парсить надо в interface{}, если уж приспичило потом руками в валидную структуру перегонять
источник

ЛА

Локоть Анатолий in Go-go!
а кто это
делать парсинг два раза
В целом да, а как проверка в кастомном Маршалле будет реализована?
источник

x

x-foby in Go-go!
Александр Парамонов
Привет. Вот такая проблема - сервер возвращает json при ответе. В нём есть ключ с объектом. Если в нём нет ключей, то там пустой массив. Как это обработать?
Ответ с ключами: {"fields": {"field1": "value1", "field2": "value2"}}
Ответ без ключей: {"fields": []}
Структура в go:
type A struct {
Fields map[string]string `json:"fields"`
}

Если приходит массив, то Unmarshal возвращает ошибку json: cannot unmarshal array into Go struct field UserGetProfileResult.fields of type map[string]string
А связи с разработчиками этого апи точно нет?
источник

АП

Александр Парамонов in Go-go!
Есть
источник

а

а кто это in Go-go!
x-foby
А связи с разработчиками этого апи точно нет?
только из-за одного клиента менять апи?
источник

DP

Daniel Podolsky in Go-go!
Локоть Анатолий
В целом да, а как проверка в кастомном Маршалле будет реализована?
по первому байту - { или [
источник

VM

Vladislav Milenin in Go-go!
Проще ткнуть чем работать с этим
источник

DP

Daniel Podolsky in Go-go!
а кто это
только из-за одного клиента менять апи?
это изначально невалидное api, его менять надо вне связи с клиентами
источник

АП

Александр Парамонов in Go-go!
Можно в json.RawMessage парсить а потом проверять if A.Field = "[]" ....
источник

VM

Vladislav Milenin in Go-go!
а кто это
только из-за одного клиента менять апи?
Так там в корне неверная реализация
источник