mirror of
https://github.com/unknwon/the-way-to-go_ZH_CN.git
synced 2025-08-12 03:06:41 +08:00
41 lines
862 B
Go
41 lines
862 B
Go
// 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")
|
|
}
|
|
}
|