Shadow
Golang语言中的json格式互转
Golang语言中的json格式互转
//json数据互转
package main
import (
"encoding/json"
"fmt"
)
func main() {
type Infos struct {
Name string `json:"name"`
Age int `json:"age"`
Likes []string `json:"likes"`
Jobs []struct {
JobName string `json:"job_name"`
JobAddress string `json:"job_address"`
} `json:"jobs"`
}
//定义一个结构体,便于转json
var myInfo = Infos{
Name: "Dcr163",
Age: 39,
Likes: []string{"游戏", "音乐", "代码"},
Jobs: []struct {
JobName string `json:"job_name"`
JobAddress string `json:"job_address"`
}{
{JobName: "网络1", JobAddress: "大道中"},
{JobName: "完美", JobAddress: "大道上"},
},
}
jsonStr, err := json.Marshal(myInfo)
if err != nil {
fmt.Println("Json化失败", err)
}
fmt.Printf("%s\n", jsonStr)
//定义一个结构体,转换json数据使用
var yd struct {
Type string `json:"type"`
ErrorCode int `json:"errorCode"`
TranslateResult [][]struct {
Src string `json:"src"`
Tgt string `json:"tgt"`
} `json:"translateResult"`
}
//模拟的json数据,有道接口返回的数据
var a = `
{
"type": "ZH_CN2EN",
"errorCode": 0,
"elapsedTime": 0,
"translateResult": [
[
{
"src": "我喜欢中国",
"tgt": "I like Chinese"
}
]
]
}
`
//转换json为自己定义的结构体
err = json.Unmarshal([]byte(a), &yd)
if err != nil {
panic(err)
}
fmt.Println("翻译类型:", yd.Type)
fmt.Println("中文:", yd.TranslateResult[0][0].Src, "英文为:", yd.TranslateResult[0][0].Tgt)
}
Dcr163的博客
http://dcr163.cn/612.html(转载时请注明本文出处及文章链接)