* gopher.json
{
"name": "Gopher",
"title": "programmer",
"contact": {
"home":"415.333.3333",
"cell":"415.555.5555"
}
}
* gopher.go
package main
import (
"encoding/json"
"fmt"
// "log"
// "net/http"
"os"
"io/ioutil"
)
type Contact struct {
Name string `json:"name"`
Title string `json:"title"`
Contact struct {
Home string `json:"home"`
Cell string `json:"cell"`
} `json:"contact"`
}
func file_get_contents(path string) ([]byte, error) {
f, err := os.Open(path)
if err != nil {
return nil, err
}
return ioutil.ReadAll(f)
}
func main() {
var c Contact
var content []byte
var err error
content, err = file_get_contents("gopher.json")
if err != nil {
fmt.Println("open file error: "+ err.Error())
return
}
err = json.Unmarshal([]byte(content), &c)
if err != nil {
fmt.Println("ERROR: ", err.Error())
return
}
fmt.Println(c)
fmt.Println(c.Contact.Home)
}
* test:
go run gopher.go
{Gopher programmer {415.333.3333 415.555.5555}}
415.333.3333