mirror of
https://github.com/unknwon/the-way-to-go_ZH_CN.git
synced 2025-08-12 01:21:38 +08:00
update book code
This commit is contained in:
40
eBook/examples/chapter_12/json.go
Normal file
40
eBook/examples/chapter_12/json.go
Normal file
@@ -0,0 +1,40 @@
|
||||
// json.go.go
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"encoding/json"
|
||||
"log"
|
||||
"os"
|
||||
)
|
||||
|
||||
type Address struct {
|
||||
Type string
|
||||
City string
|
||||
Country string
|
||||
}
|
||||
|
||||
type VCard struct {
|
||||
FirstName string
|
||||
LastName string
|
||||
Addresses []*Address
|
||||
Remark string
|
||||
}
|
||||
|
||||
func main() {
|
||||
pa := &Address{"private", "Aartselaar","Belgium"}
|
||||
wa := &Address{"work", "Boom", "Belgium"}
|
||||
vc := VCard{"Jan", "Kersschot", []*Address{pa,wa}, "none"}
|
||||
// fmt.Printf("%v: \n", vc) // {Jan Kersschot [0x126d2b80 0x126d2be0] none}:
|
||||
// JSON format:
|
||||
js, _ := json.Marshal(vc)
|
||||
fmt.Printf("JSON format: %s", js)
|
||||
// using an encoder:
|
||||
file, _ := os.OpenFile("vcard.json", os.O_CREATE|os.O_WRONLY, 0)
|
||||
defer file.Close()
|
||||
enc := json.NewEncoder(file)
|
||||
err := enc.Encode(vc)
|
||||
if err != nil {
|
||||
log.Println("Error in encoding json")
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user