2 回答

TA貢獻(xiàn)1869條經(jīng)驗(yàn) 獲得超4個(gè)贊
使用iotest.NewReadLogger在讀取數(shù)據(jù)時(shí)記錄數(shù)據(jù):
prefix := fmt.Sprintf("%p:", conn)
reader := bufio.NewReader(iotest.NewReadLogger(prefix, conn))
dec := json.NewDecoder(reader)
for {
var dst customStruct
if err = dec.Decode(&dst); err == io.EOF {
break
} else if err != nil {
log.Errorf("failed to decode message: %s", err)
break
}
// do something with dst...
}
如果讀取的記錄器輸出不符合您的口味,則復(fù)制實(shí)現(xiàn)并根據(jù)需要進(jìn)行調(diào)整。實(shí)現(xiàn)非常簡(jiǎn)單。

TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超14個(gè)贊
您可以使用ioutil.ReadAll()然后從字節(jié)中打印和解碼。但是由于您在不使用緩沖區(qū)的情況下讀取所有字節(jié),因此理想情況下應(yīng)該將其放在debug標(biāo)志檢查之后。
bs,err := ioutil.ReadAll()
if err != nil {
panic(err)
}
log.Printf("output: %s", string(bs))
var dst customStruct
if err := json.Unmarshal(bs, &dst); err != nil {
panic(err)
}
- 2 回答
- 0 關(guān)注
- 141 瀏覽
添加回答
舉報(bào)