2014-01-30 3 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 так много т Редакторы IME. Я не могу разобрать json-файл, упомянутый в начале вопроса. Может кто-нибудь, пожалуйста, скажите мне, как продолжить?

ответ

8

Вы можете использовать следующее определение структуры для отображения вашей структуры JSON:

type Peer struct{ 
    Pid int 
    Address string 
} 

type Config struct{ 
    Peers []Peer 
} 

Example on play.

+0

Большое спасибо! Это именно то, что я искал. –

Смежные вопросы