1 回答

TA貢獻1827條經驗 獲得超9個贊
首先,閱讀文檔。
打包json
導入“編碼/json”
func (*解碼器) 解碼
func?(dec?*Decoder)?Decode(v?interface{})?errorDecode 從其輸入中讀取下一個 JSON 編碼值并將其存儲在 v 指向的值中。
package main
import (
? ? "encoding/json"
? ? "fmt"
? ? "log"
? ? "strings"
)
func main() {
? ? const jsonStream = `
? ? [
? ? ? ? {"Name": "Ed", "Text": "Knock knock."},
? ? ? ? {"Name": "Sam", "Text": "Who's there?"},
? ? ? ? {"Name": "Ed", "Text": "Go fmt."},
? ? ? ? {"Name": "Sam", "Text": "Go fmt who?"},
? ? ? ? {"Name": "Ed", "Text": "Go fmt yourself!"}
? ? ]
`
? ? type Message struct {
? ? ? ? Name, Text string
? ? }
? ? dec := json.NewDecoder(strings.NewReader(jsonStream))
? ? // read open bracket
? ? t, err := dec.Token()
? ? if err != nil {
? ? ? ? log.Fatal(err)
? ? }
? ? fmt.Printf("%T: %v\n", t, t)
? ? // while the array contains values
? ? for dec.More() {
? ? ? ? var m Message
? ? ? ? // decode an array value (Message)
? ? ? ? err := dec.Decode(&m)
? ? ? ? if err != nil {
? ? ? ? ? ? log.Fatal(err)
? ? ? ? }
? ? ? ? fmt.Printf("%v: %v\n", m.Name, m.Text)
? ? }
? ? // read closing bracket
? ? t, err = dec.Token()
? ? if err != nil {
? ? ? ? log.Fatal(err)
? ? }
? ? fmt.Printf("%T: %v\n", t, t)
}
- 1 回答
- 0 關注
- 133 瀏覽
添加回答
舉報