go 语言如何比较两个json(Go语言学习3-json转换)
go 语言如何比较两个json(Go语言学习3-json转换)如果您觉得对您有用的话 可以点个赞或者加个关注 欢迎大家一起进行技术交流
前言突然想起go语言怎么进行json转换(2018.10.13) 因为是学习所以优先使用go自带的json组件 主要其他的组件也不会.
代码package main
import (
"encoding/JSON"
"fmt"
)
type Person struct {
Name string `json:"name"` //加Tag 转json将Name替换为name
Sex string `json:"-"` //加Tag 转json和json转类型 "-" 都不输出该字段
Age int
}
func main() {
p := Person{"tom" "man" 23}
ToJSON1(p)
ToJSON2(p)
ToObejct("{\"name\":\"hello\" \"Sex\":\"man\" \"Age\":32}")
}
//ToJSON1 进行转json
func ToJSON1(p Person) {
buf err := json.Marshal(p) //将结构体Person类型进行转json 返回byte
if err != nil {
fmt.Println("convert json failed: " err)
return
}
fmt.Println(buf)
fmt.Println("json1=" string(buf))
}
//ToJSON2 对json进行格式化 方便阅读
//第二个参数对json的"{" "}"位置调整 可以用空格 \t
//第三个参数对结构内的字段位置调整 可以用空格 \t
func ToJSON2(p Person) {
buf err := json.MarshalIndent(p "" "")
if err != nil {
fmt.Println("convert json failed:" err)
return
}
fmt.Println("format json=" string(buf))
}
//ToObejct 将字符串转Person
func ToObejct(str string) {
buf := []byte(str)
var p Person
err := json.Unmarshal(buf &p)
if err != nil {
fmt.Println("convert Person failed:" err)
return
}
fmt.Printf("p.Name=%s p.Age=%d\n" p.Name p.Age)
}
go语言进行json转换
学习go语言 纯粹是个人喜欢 后面还有一段时间喜欢上Rust 工作主要使用C# 后面精力主要放在C# 空余时间在学习CoreCLR源码 等搞明白了 在写点东西.
个人能力有限 如果您发现有什么不对 请私信我
如果您觉得对您有用的话 可以点个赞或者加个关注 欢迎大家一起进行技术交流