1. 文档来源
来自多个地方,不一一列举。
2.代码
package main
import "fmt"
import "encoding/json"
type Server struct {
ServerName string
ServerIP string
}
type Serverslice struct {
Servers []Server
}
func main() {
var s Serverslice
//encode
s.Servers = append(s.Servers, Server{ServerName: "Shanghai_VPN", ServerIP: "127.0.0.1"})
s.Servers = append(s.Servers, Server{ServerName: "Beijing_VPN", ServerIP: "127.0.0.2"})
b, err := json.Marshal(s)
if err != nil {
fmt.Println("json err:", err)
}
//just print
fmt.Println(string(b))
//decode method 1
var s_1 Serverslice
json.Unmarshal(b, &s_1)
fmt.Println(s_1.Servers)
fmt.Println(s_1.Servers[0])
fmt.Println(s_1.Servers[0].ServerName)
//decode method 2
var f interface{}
json.Unmarshal(b, &f)
m := f.(map[string]interface{})
for k, v := range m {
switch vv :