4 回答

TA貢獻(xiàn)1943條經(jīng)驗(yàn) 獲得超7個(gè)贊
您的輸入是:
[??
? ?{??
? ? ? "created_at":"Thu May 31 00:00:01 +0000 2012"
? ?},
? ?{??
? ? ? "created_at":"Thu May 31 00:00:01 +0000 2012"
? ?}
]
你可以把它變成這樣的結(jié)構(gòu):
type MyArray []struct {
? ? CreatedAt string `json:"created_at"`
}
現(xiàn)在您可以讀取 JSON 數(shù)據(jù)并循環(huán)遍歷它以獲得所需的值。這是你得到的:
package main
import (
? ? "encoding/json"
? ? "fmt"
)
var str = `[
? ? {
? ? "created_at": "Thu May 31 00:00:01 +0000 2012"
? ? },
? ? {
? ? "created_at": "Thu May 31 00:00:01 +0000 2013"
? ? }
]`
type MyArray struct {
? ? CreatedAt string `json:"created_at"`
}
func main() {
? ? var m []MyArray
? ? if err := json.Unmarshal([]byte(str), &m); err != nil {
? ? ? ? panic(err)
? ? }
? ? for _, val := range m {
? ? ? ? fmt.Println(val.CreatedAt)
? ? }
}

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超8個(gè)贊
您正在將數(shù)組解組到地圖。這顯然行不通。你需要val是一個(gè)數(shù)組。
func main() {
var val []map[string]interface{} // <---- This must be an array to match input
if err := json.Unmarshal([]byte(input), &val); err != nil {
panic(err)
}
fmt.Println(val)
}

TA貢獻(xiàn)2021條經(jīng)驗(yàn) 獲得超8個(gè)贊
var input = `[
{
"created_at": "Thu May 31 00:00:01 +0000 2012"
},
{
"created_at": "Thu May 31 00:00:01 +0000 2013"
}
]`
func main() {
var val []struct {
CreatedAt string `json:"created_at"`
}
if err := json.Unmarshal([]byte(input), &val); err != nil {
panic(err)
}
fmt.Println(val[0].CreatedAt)
}

TA貢獻(xiàn)2019條經(jīng)驗(yàn) 獲得超9個(gè)贊
你應(yīng)該像這樣創(chuàng)建一個(gè)結(jié)構(gòu)。
type Data struct {
CreateAt time.Time `json:"create_at"`
}
func main() {
var in []Data
if err := json.Unmarshal([]byte(input), &in); err != nil{
log.Fatal(err)
}
for _, data := range in{
fmt.Println(data.CreateAt)
}
}
- 4 回答
- 0 關(guān)注
- 239 瀏覽
添加回答
舉報(bào)