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)
}
如果要打包这种格式:
{"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)
}
相关文章推荐
- golang simplejson 使用笔记
- java笔记:自己动手写javaEE框架(七)--使用JSON和Ajax技术
- Java学习笔记50:JSONObject与JSONArray的使用
- android菜鸟学习笔记25----与服务器端交互(二)解析服务端返回的json数据及使用一个开源组件请求服务端数据
- 从php获取json数据使用js读取显示到网页笔记
- Android笔记——什么是json?json如何使用?
- Javascript笔记一 js以及json基础使用说明
- fastjson 使用笔记
- iOS开发笔记24--第三方库JSONModel的使用
- Json学习笔记之Json的使用
- struts2学习笔记--使用struts2插件实现ajax处理(返回json数据)
- Java学习笔记50:JSONObject与JSONArray的使用 .
- Qt模块化笔记之core——使用QJsonDocument输出JSON数据
- Qt 使用json的一些笔记
- Extjs学习笔记——Ext.data.JsonStore使用说明
- Cocos2dx学习笔记37 Json 数据解析rapidjson库的使用
- 工作笔记_使用EasyUI Tree异步加载JSON数据 生成树
- 『Golang』在Golang中使用json
- Android笔记 使用Json从数据库读取数据+demo
- Andorid中使用Gson和Fast-json解析库解析JSON数据---第三方库学习笔记(二)