4 回答
TA贡献1943条经验 获得超7个赞
您的输入是:
[
{
"created_at":"Thu May 31 00:00:01 +0000 2012"
},
{
"created_at":"Thu May 31 00:00:01 +0000 2012"
}
]
你可以把它变成这样的结构:
type MyArray []struct {
CreatedAt string `json:"created_at"`
}
现在您可以读取 JSON 数据并循环遍历它以获得所需的值。这是你得到的:
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贡献1784条经验 获得超8个赞
您正在将数组解组到地图。这显然行不通。你需要val是一个数组。
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贡献2021条经验 获得超8个赞
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贡献2019条经验 获得超9个赞
你应该像这样创建一个结构。
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 关注
- 180 浏览
添加回答
举报