Mam wrażenie, że powinien to być niewielki problem, ale wypróbowałem każdy wzór, który mogę wymyślić i nie miałem szczęścia. Mam strukturę, która musi być kodowalna zarówno przez pakiety encoding/json
i github.com/zeebo/bencode
. Zdarza się, że zawiera kanał, który nie może być zakodowany przez żadną z paczek. Dlatego musi mieć przy sobie znacznik "-"
, aby to pole zostało pominięte.Wiele znaczników na tym samym elemencie struktury Go
type Index struct {
Data data
Queue chan string `json:"-"`
}
Jest to ważne, gdy kodowane przez pakiet json
, ale nie z pakietu bencode
.
type Index struct {
Data data
Queue chan string `bencode:"-"`
}
Blok ten, oczywiście, ma codzienne problemy. Próbowałem składni tagów, takich jak json:"-",bencode:"-"
, *:"-"
, "-"
, -
. Czy istnieje rozwiązanie?
Dziękuję wszystkim.
To była jedna rzecz ja nie spróbować! Dziękuję Ci bardzo. –
Z http://golang.org/pkg/reflect/#StructTag: Zgodnie z konwencją ciągi znaków są połączeniem opcjonalnie oddzielonego od spacji klucza: pary "wartości". Każdy klucz jest niepustym łańcuchem składającym się ze znaków niekontrolowanych innych niż spacja (U + 0020 ''), cudzysłowy (U + 0022 '"') i dwukropka (U + 003A ':'). za pomocą znaków U + 0022 "" i literał łańcuchowy Go string. –
Innymi słowy, spacja jest opcjonalna, ale nie działa żaden inny separator. –