无法在golang中解析此json文件

时间:2014-01-30 10:54:46

标签: json go

我正在尝试编写go代码来解析以下json文件:

{
    "peers": [
        {
            "pid": 1,
            "address": "127.0.0.1:17001"
        },
        {
            "pid": 2,
            "address": "127.0.0.1:17002"
        }
    ]
}

到目前为止我能做的就是写下这段代码:

package main

import (
    "fmt"
    "io/ioutil"
    "encoding/json"
)

type Config struct{
    Pid int
    Address string
}

func main(){
    content, err := ioutil.ReadFile("config.json")
    if err!=nil{
        fmt.Print("Error:",err)
    }
    var conf Config
    err=json.Unmarshal(content, &conf)
    if err!=nil{
        fmt.Print("Error:",err)
    }
    fmt.Println(conf)
}

上面的代码适用于非嵌套的json文件,如下所示:

{
    "pid": 1,
    "address": "127.0.0.1:17001"
}

但即使在更改Config struct这么多次之后。我无法解析问题开头提到的json文件。有人可以告诉我如何继续吗?

2 个答案:

答案 0 :(得分:8)

您可以使用以下结构定义来映射JSON结构:

type Peer struct{
    Pid int
    Address string
}

type Config struct{
    Peers []Peer
}

Example on play

答案 1 :(得分:0)

要包括自定义属性名称,请添加结构字段标记为:

type Peer struct{
        CustomId int `json:"pid"` 
        CustomAddress string `json:"address"`
    }