Size: a a a

2020 May 12

М

МишанЯ in Go-go!
Массивов?🤔
источник

a

aĸιonĸa 🇷🇺... in Go-go!
как по уму реализовать анмаршалинг JSON данных, которые могут иметь разную нагрузку payload в зависимости от типа type?
источник

a

aĸιonĸa 🇷🇺... in Go-go!
МишанЯ
Массивов?🤔
массивов чего
источник

d

dmitri💡 in Go-go!
aĸιonĸa 🇷🇺
как по уму реализовать анмаршалинг JSON данных, которые могут иметь разную нагрузку payload в зависимости от типа type?
map
источник

a

aĸιonĸa 🇷🇺... in Go-go!
значения разных типов, строки и инты
источник

d

dmitri💡 in Go-go!
aĸιonĸa 🇷🇺
значения разных типов, строки и инты
map[string]interface{}
источник

М

МишанЯ in Go-go!
aĸιonĸa 🇷🇺
массивов чего
Ключей и значений. Мап?🤔
источник

d

dmitri💡 in Go-go!
lol
источник

C

Calculon in Go-go!
aĸιonĸa 🇷🇺
как по уму реализовать анмаршалинг JSON данных, которые могут иметь разную нагрузку payload в зависимости от типа type?
разную нагрузку в плане N разных вариаций, или вообще непредсказуемо разную?
источник

a

aĸιonĸa 🇷🇺... in Go-go!
Calculon
разную нагрузку в плане N разных вариаций, или вообще непредсказуемо разную?
На каждый тип есть строгая нагрузка, ключи и их значения всегда строго одного типа
источник

C

Calculon in Go-go!
aĸιonĸa 🇷🇺
На каждый тип есть строгая нагрузка, ключи и их значения всегда строго одного типа
Мой вариант:
Создаёшь структуры под каждый вариант payload-ов
Эмбеддишь указатели на payload-ы в одну структуру + поле Type string
И делаешь кастомный анмаршал по полю Type
источник

М

МишанЯ in Go-go!
aĸιonĸa 🇷🇺
как по уму реализовать анмаршалинг JSON данных, которые могут иметь разную нагрузку payload в зависимости от типа type?
If type = newMessage{ то по этой структуре декодирование, иначе перебирать. Я бы так по тупому сделал🤔
источник

C

Calculon in Go-go!
Надеюсь понятно написал🌚
источник

DP

Daniel Podolsky in Go-go!
МишанЯ
Ключей и значений. Мап?🤔
так, идете изучать свой код, чтобы найти в нем описание events, а в нем - тип Events.

как найдете - пишите в личку, разбаню
источник

a

aĸιonĸa 🇷🇺... in Go-go!
Calculon
Надеюсь понятно написал🌚
Да, понятно
источник

DP

Daniel Podolsky in Go-go!
aĸιonĸa 🇷🇺
На каждый тип есть строгая нагрузка, ключи и их значения всегда строго одного типа
вариантов 4 (на самом деле - 3, третий вариация второго)

1. делаете универсальную структуру, в которую можно анмаршалить любой из ваших типов. не подойдет, если имена полей разных типов пересекаются
2. делаете минимальный тип, чтобы понять, что у вас там внутри, и соответствующие типы для каждого варианта. соответствующие типы надо сделать одним интерфейсом, и это может быть confusing
3. делаете кастомный тип, который внутри себя уже содержит соответствующие типы, и кастомный анмаршалер, который сначала смотрит внутрь массива байт, а потом анмаршалит куда надо
4. анмаршалите в переменную типа interface{}, и разбираете, что там у вас, в чистой динамике

но самый правильный вариант - отказаться от такого упоротого api
источник

C

Calculon in Go-go!
Daniel Podolsky
вариантов 4 (на самом деле - 3, третий вариация второго)

1. делаете универсальную структуру, в которую можно анмаршалить любой из ваших типов. не подойдет, если имена полей разных типов пересекаются
2. делаете минимальный тип, чтобы понять, что у вас там внутри, и соответствующие типы для каждого варианта. соответствующие типы надо сделать одним интерфейсом, и это может быть confusing
3. делаете кастомный тип, который внутри себя уже содержит соответствующие типы, и кастомный анмаршалер, который сначала смотрит внутрь массива байт, а потом анмаршалит куда надо
4. анмаршалите в переменную типа interface{}, и разбираете, что там у вас, в чистой динамике

но самый правильный вариант - отказаться от такого упоротого api
vk api сделан точно так же :/
источник

DP

Daniel Podolsky in Go-go!
это что - повод самому лезть в эту ловушку?

vk написан на php, и api его написан какими-то школьниками. не будь как vk
источник

ЕК

Егор Карась... in Go-go!
Daniel Podolsky
это что - повод самому лезть в эту ловушку?

vk написан на php, и api его написан какими-то школьниками. не будь как vk
источник

C

Calculon in Go-go!
Как бы вы такой апи реализовали? Отдельный эндпоинт на каждый тип события?
источник