您的位置:首页 > Web前端 > JavaScript

golang--json使用笔记

2016-08-23 16:57 330 查看
在json编码中,最麻烦的是json数组,下面记录一下我在json编码遇到的难题和解决的源代码:

如果要打包这种格式:

{"key":222,"msg":{"ed":"aaa","gf":"23.45","rs":"23"},"status":1}
代码如下:
package main

import (
"encoding/json"
"fmt"
)

func main() {

t := make(map[string]interface{})
t["ed"] = "aaa"
t["rs"] = "23"
t["gf"] = "23.45"
res := make(map[string]interface{})
res["status"] = 1
res["key"] = 222
res["msg"] = t
body, err := json.Marshal(res)
if err != nil {
fmt.Println(err)
return
} else {

fmt.Println(string(body))
}
}


如果要打包如下格式:

{"key":222,"msg":[{"ed":"aaa","gf":"23.45","rs":"23"}],"status":1}
代码如下:
package main

import (
"encoding/json"
"fmt"
)
func main() {
var rbody []map[string]interface{}
t := make(map[string]interface{})
t["ed"] = "aaa"
t["rs"] = "23"
t["gf"] = "23.45"
rbody = append(rbody, t)
res := make(map[string]interface{})
res["status"] = 1
res["key"] = 222
res["msg"] = rbody
body, err := json.Marshal(res)
if err != nil {
fmt.Println(err)
return
} else {

fmt.Println(string(body))
}

}


在解析json结构的时候,最麻烦是解析json数组,如解析:
{"key":222,"msg":[{"ed":"aaa","gf":"23.45","rs":"23"}],"status":1}
代码如下:
package main

import (
"encoding/json"
"fmt"
)

type tt struct {
Key int
Msg []msg
Status int
}

type msg struct {
Ed string
Rs string
Gf string
}

func main() {
tests := tt{}
body := `{"key":222,"msg":[{"ed":"aaa","gf":"23.45","rs":"23"}],"status":1}`
jsonerr := json.Unmarshal([]byte(body), &tests)/*[]byte()是可以把string强制转换城byte*/
if jsonerr != nil {
fmt.Println(jsonerr)
return
}

fmt.Println(tests.Key)
fmt.Println(tests.Msg[0].Ed)
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: