[bigdata-090] golang的两种将数据转化成json然后再从json转成数据

来源:互联网 发布:php java 编辑:程序博客网 时间:2024/06/08 18:33

1. 文档来源

来自多个地方,不一一列举。


2.代码

package mainimport "fmt"import "encoding/json"type Server struct {ServerName stringServerIP   string}type Serverslice struct {Servers []Server}func main() {var s Serverslice//encodes.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 printfmt.Println(string(b))//decode method 1var s_1 Serverslicejson.Unmarshal(b, &s_1)fmt.Println(s_1.Servers)fmt.Println(s_1.Servers[0])fmt.Println(s_1.Servers[0].ServerName)//decode method 2var f interface{}json.Unmarshal(b, &f)m := f.(map[string]interface{})for k, v := range m {switch vv := v.(type) {case string:fmt.Println(k, "is string", vv)case int:fmt.Println(k, "is int", vv)case []interface{}:fmt.Println(k, "is an array:")for i, u := range vv {fmt.Println(i, u)}default:fmt.Println(k, "is of a type I don't know how to handle")}}}


原创粉丝点击