TypechoJoeTheme

Dcr163的博客

统计

Golang语言中的json格式互转

2021-12-11
/
0 评论
/
1,209 阅读
/
正在检测是否收录...
12/11

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)
}

gojson
朗读
赞(1)
版权属于:

Dcr163的博客

本文链接:

https://dcr163.cn/612.html(转载时请注明本文出处及文章链接)

评论 (0)