I am trying to write go code to parse the following of json file:
{
"peers": [
{
"pid": 1,
"address": "127.0.0.1:17001"
},
{
"pid": 2,
"address": "127.0.0.1:17002"
}
]
}
What I could do so far is write this code:
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)
}
Above code works for non-nested json files like following one:
{
"pid": 1,
"address": "127.0.0.1:17001"
}
But even after changing the Config struct
so many times. I am not able to parse the json file mentioned at the start of the question. Can somebody please tell me how to proceed?
You can use the following struct definition to map your JSON structure:
type Peer struct{
Pid int
Address string
}
type Config struct{
Peers []Peer
}
To include custom attribute names, add struct field tags as:
type Peer struct{
CustomId int `json:"pid"`
CustomAddress string `json:"address"`
}