Zloy-Dobry
Sergei
Zloy-Dobry
Чувак спросил доку, я дал доку, чо не так то?
Zloy-Dobry
Zloy-Dobry
Сам такой
Dmitrii
Чувак спросил доку, я дал доку, чо не так то?
- у чатов есть определенная цель - распространение знания
- когда задают вопрос и нечего ответить по теме, лучше промолчать (читай правила)
- подобные высказывания - токсик бихейвер
На всякий случай переведу.
Когда я задал вопрос, мне ответили и это помогло (спасибо @GruchikVlad), я переписал где было нужно, но осталась не ясность, почему так? Я транслировал это в высказывание (что придется править код), на что получил колкость, на вопрос где дока (предположил, что у тебя есть понимание почему так надо) попросил линку, вместо линки на бэст практис, получил lmgtfy.
Zloy-Dobry
Ох,сложный то какой. Ссылку то ты на доку, а не бест практис спрашивал, так шт ненад.
Pawel
Anonymous
Anonymous
Anonymous
Anonymous
сейчас json точно норм
Anonymous
Anonymous
но не понятно, где Field3 )
Anonymous
да, у меня скрин чуть выше
Dmitrii
сорян )
Anonymous
вопрос теперь чё с этим делать ))
Anonymous
как замаршалить )
Aleksandr
Замаршаллить или анмаршаллить?
Anonymous
замаршалить
Anonymous
я не пойму просто как инициализировать этого монстра
Aleksandr
Структуру в json? Создай инстанс структуры, замаршалль
Anonymous
вот не пойму как создать
Dmitrii
Дай код структуры
Anonymous
type AutoGenerated struct {
MyArray [][]struct {
Field1 string json:"Field1,omitempty"
Field2 string json:"Field2,omitempty"
} json:"myArray"
}
Aleksandr
s:= Autogenerated{MyArray: [][]struct{тут перечисление структур с двумя полями}}
Anonymous
а, вот как
Aleksandr
на play.golang начни, тебе доделают
Anonymous
да мне бы желательно суть понять
Anonymous
я пока чё-то. в потёмках
Anonymous
единственное, что собственно, не понятно, это как создать массив в массиве
Anonymous
для данной конструкции
Aleksandr
[][]struct{ []struct{ struct{...}, struct{...} }, []struct{ struct{...}, struct{...} } }
Anonymous
o_O ох.. сейчас попробую
Anonymous
в чем трабл то
Anonymous
в чем трабл то
В том, что пытаясь разложить и сделать пошагово, у меня неправильно получается.
https://play.golang.org/p/XgPLG_X2YfE
Anonymous
Aleksandr
https://play.golang.org/p/rTpwfRWCH-N
Aleksandr
мог бы просто мой код скопировать
Aleksandr
[][]struct{ []struct{ struct{...}, struct{...} }, []struct{ struct{...}, struct{...} } }
Anonymous
Artem
Anonymous
Anonymous
всмысле этой строкой
Artem
у тебя там struct{Field1:"поле1",Field2:"поле2"}
Anonymous
да
Artem
а должно быть
struct{
Field1 string
Field2 string
}{
Field1:"поле1",
Field2:"поле2"
}
Anonymous
ааа
Artem
т.к. анонимные
Anonymous
не знал этого момента (
Artem
дал бы имя, такое городить не пришлось бы
Anonymous
ладно, всем спасибо, пойду ковыряться!
bebebe
а кто-нибудь может посоветовать "хорошие" библиотеки для fuzzysearch? я попробовал около 6 и все они не очень, а последний вообще ключи к lowercase безвозвратно приводит
bebebe
вот вроде неплохая https://github.com/junegunn/fzf/blob/master/src/algo/algo.go
heavycharged
подскажите, есть типичный ответ API, это JSON-объект со свойствами data и error (если есть). При этом, data на каждый метод API содержит разную структуру. Как это можно порешать в Go? Чтобы создать, например, структуру
type Response struct {
Data ... `json:"data"`
Error Error `json:"error"`
}
Constantine️
interface{} ?
Constantine️
сделай свой интерфейс?
heavycharged
interface{} ?
На каждый метод, свой интерфейс реализующий Unmarshaller?
heavycharged
или можно как-то проще?
heavycharged
Я бы хотел что-то вроде resp := Response{Data: UsersResponse}
heavycharged
и туда заанмаршалить, но такое видимо не сработает?
heavycharged
Имплементировал Unmarshaler, а он валится в рекурсию :(
heavycharged
У кого-то есть мысли, как тактично это обыграть? Потому что методов оче много, под каждый писать свой Unmarshaler - это похоже на идиотизм. Можно, конечно, генерировать кучу {Method}Response, и эмбедить туда Error и прочее. Но, кмк, тоже не очень красиво.
Nurzhan
Nurzhan
heavycharged
потому что одна и та же писанина, по сути.. :(
Nurzhan
В го строгая типизация, думаю, без этого никак
Nurzhan
С пустым интерфейсом в этом случае будет куча головной боли, пока сделаешь type assertion
heavycharged
тут не столько в типизации проблема, сколько косяк в этой рекурсии. По сути, мне бы подошло как раз unmarshaler, если бы его можно было бы вызвать без рекурсии, как будто самого интерфейса нет. может какую-то прослойку пригромоздить, но пока ничего в голову не пришло.
heavycharged
можно на сам Response повесить Unmarshaler, а на Data какой-то свой интерфейс завернуть, но нужно на практике проверить, зайдет ли такой вариант.
Nurzhan
heavycharged
Совсем не понял, откуда рекурсия взялась, можно пример?
вы правы, я лохонулся. сейчас глянул в код, и не то передавал в Decode(). Сейчас переделал, вот такую ошибку получаю: json: cannot unmarshal object into Go struct field Response.data of type json.Unmarshaler
Slava
через RawData можно
Slava
с другой стороны, если каждый метод возвращает разный ответ - то правильнее под каждый метод свою структуру делать