1 回答

TA貢獻1811條經(jīng)驗 獲得超4個贊
由于您希望解碼器填充結(jié)構(gòu)的字段,因此您必須使用指針。像這樣在類型的指針上定義接口的方法:http : //play.golang.org/p/WUMt9Ok9Xp
package main
import (
"encoding/json"
"fmt"
"strings"
)
type T interface {
Printer()
}
type A struct {
JA string
}
func (a *A) Printer() {
fmt.Printf("A: %v\n", a.JA)
}
type B struct {
JB string
}
func (b *B) Printer() {
fmt.Printf("B: %v\n", b.JB)
}
func main() {
vI := []T{&A{}, &B{}}
dec := json.NewDecoder(strings.NewReader("[{\"JA\":\"OKA\"}, {\"JB\":\"OKB\"}]"))
if err := dec.Decode(&vI); err != nil {
fmt.Print(err)
}
for _, v := range vI {
v.Printer()
}
}
- 1 回答
- 0 關(guān)注
- 181 瀏覽
添加回答
舉報