首页 > 解决方案 > 使用结构解析 JSON

问题描述

我正在尝试使用 Go 解析 JSON。谁能告诉我为什么我的代码没有按预期工作?

package main
  
import (
    "encoding/json"
    "fmt"
)
type Message struct {
    Name string
    Body string
    Time int64
}

type Person struct {
    M Message
}

func get_content() {

    body := []byte(`{"person":{"Name":"Alice","Body":"Hello","Time":1294706395881547000}}`)

    var data Person
    err := json.Unmarshal(body, &data)
    if err != nil {
        panic(err.Error())
    }
    fmt.Printf("%v",data.M.Name)

}

func main() {
    get_content()
}

我期待它打印名称。

去游乐场代码

标签: go

解决方案


这是将 JSON 解组到结构的方法。你可以在 Go Playground 上查看

package main

import (
    "encoding/json"
    "fmt"
)
type Message struct {
    Name string
    Body string
    Time int64
}

type Person struct {
    M Message
}

func get_content() {

    body := []byte(`{"Name":"Alice","Body":"Hello","Time":1294706395881547000}`)

    var data Person

    err := json.Unmarshal(body, &data.M)

    if err != nil {
        panic(err.Error())
    }
    fmt.Printf(data.M.Name)

}

func main() {
    get_content()
}

替换datadata.M下一行。

err := json.Unmarshal(body, &data)


推荐阅读