2014-01-30 170 views
4

我想寫去代碼來解析JSON文件的以下:無法解析此JSON文件中golang

{ 
    "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文件。有人可以告訴我如何繼續?

回答

8

您可以使用下面的結構定義映射你的JSON結構:

type Peer struct{ 
    Pid int 
    Address string 
} 

type Config struct{ 
    Peers []Peer 
} 

Example on play

+0

非常感謝!這正是我所期待的。 –