go语言之路

golang提取json

golang提取json信息

使用标准库

json数据如下

  • key
  • token
{"key":"test.txt","token":"zM_pCg7E1kBvwD0DlGQUadtxVGkumuKNQIDVI4Nl:UD82danFdTcHJsDPPuEa1fieyto=:eyJzY29wZSI6InBpYy1nb2Nsb3VkY29kZXIiLCJkZWFkbGluZSI6MTYxNzM1NDkwOX0="}

我们如何使用golang提取该信息呢?

可以使用json标准库中的Unmarshal()函数进行解码

json字符串解析时,需要一个“接收体”接受解析后的数据。我们使用一个结构体。

结构体如何定义可以使用jsonTostruct工具

image-20210402165137347

Go 支持使用 原始字符串字面值,也就是 " ` " 来表示原生字符串,在需要转义的场景下,我们应该尽量使用这种方案来替换。

package main

import (
    "encoding/json"
    "fmt"
    "log"
)

type StructName struct {
    Key   string `json:"key"`
    Token string `json:"token"`
}
func main() {
    data := `{"key":"test.txt","token":"zM_pCg7E1kBvwD0DlGQUadtxVGkumuKNQIDVI4Nl:UD82danFdTcHJsDPPuEa1fieyto=:eyJzY29wZSI6InBpYy1nb2Nsb3VkY29kZXIiLCJkZWFkbGluZSI6MTYxNzM1NDkwOX0="}`
    s := StructName{}
    if err := json.Unmarshal([]byte(data), &s); err != nil {
        log.Fatal("error")
    }
    fmt.Println(s.Key)
    fmt.Println(s.Token)
}

使用gjson

package main

import (
    "fmt"
    "github.com/tidwall/gjson"
)

func main() {
    data := `{"key":"test.txt","token":"zM_pCg7E1kBvwD0DlGQUadtxVGkumuKNQIDVI4Nl:UD82danFdTcHJsDPPuEa1fieyto=:eyJzY29wZSI6InBpYy1nb2Nsb3VkY29kZXIiLCJkZWFkbGluZSI6MTYxNzM1NDkwOX0="}`
    valueKey := gjson.Get(data, "key")
    valueToken := gjson.Get(data, "token")
    fmt.Println(valueKey)
    fmt.Println(valueToken)
}

如何拥有一个自己的服务器并部署个人网站

上一篇

Golang并发编程之并发下载

下一篇

你也可能喜欢

发表评论

您的电子邮件地址不会被公开。 必填项已用 * 标注

提示:点击验证后方可评论!

插入图片

个人微信公众号

we-tuiguang

qq交流群

群号:1046260719

微信扫一扫

微信扫一扫