[GO]json解析到结构体

Posted 蟒城贝勒爷

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[GO]json解析到结构体相关的知识,希望对你有一定的参考价值。

package main

import (
    "encoding/json"
    "fmt"
)

type IT struct {
    Company string `json:"company"`
    Subjects []string `json:"subjects"`
    Isok bool `json:"isok"`
    Price float64 `json:"price"`
}

func main() {
    jsonbuf := `{"company":"zyg","isok":true,"price":5.55,"subjects":["go","python","java"]}`
    var tmp IT
    err := json.Unmarshal([]byte(jsonbuf), &tmp) //这个地方一下是取tmp的地址的,它需要对结构体进行更改,根据查看源码可以知道它的返回就一个err
    if err != nil {
        return
    }
    fmt.Printf("tmp = %+v
", tmp)
}

执行的结果为

tmp = {Company:zyg Subjects:[go python java] Isok:true Price:5.55}  //这个结果没有问题,打印就是没有双引号的

如果其中只想需打印结果体的下面两行,只需要修改结构体为

type IT struct {
    //Company string `json:"company"`
    //Subjects []string `json:"subjects"`
    Isok bool `json:"isok"`
    Price float64 `json:"price"`
}

那么执行的结果自动的解析 为

tmp = {Isok:true Price:5.55}

 

以上是关于[GO]json解析到结构体的主要内容,如果未能解决你的问题,请参考以下文章

[go]结构体和json转换

Go 结构体与 JSON 之间的转换

Go 要如何才能解释的清!和 Json 之间的种种映射关系! 「含解决方案 & 代码实现,建议收藏!」

Go 要如何才能解释的清!和 Json 之间的种种映射关系! 「含解决方案 & 代码实现,建议收藏!」

Go配置文件绑定到结构体实战演示

Go语言结构体