go语言中Json库使用

对于一个web服务,一般都会用到Json作为出入参,那么go作为一门后端语言,在它的标准库里面就已经内置了json库
我们只要使用他的api Marshal 与 Unmarshal就可以很轻松的在json与对象之间转换

下面是是一个json转换的例子
新建go文件json.go代码如下

package main

import (
	"encoding/json"
	"fmt"
)

type User struct {
	Name    string
	Age     int16
	Married bool
}

func main() {

	user := &User{
		Name:    "juan",
		Age:     20,
		Married: false,
	}
	marshal, err := json.Marshal(user)
	if err != nil {
		fmt.Println(err.Error())
	}
	// marshal 返回的是个[]byte 转成 string
	fmt.Println(string(marshal))

	fmt.Println("------------------------")
	jsonStr := "{\"Name\":\"wendell\",\"Age\":25,\"Married\":true}"

	err = json.Unmarshal([]byte(jsonStr), user)
	if err != nil {
		fmt.Println(err.Error())
	}
	fmt.Println(user)

}

执行

{"Name":"juan","Age":20,"Married":false}
------------------------
&{wendell 25 true}

Process finished with the exit code 0

可以看到打印结果也是没问题的,但是在go中结构体字段首字母大写才是其它包可以访问的,类似于java中的public访问修饰符,但是往往在web应用中json的格式都是首字母小写的驼峰命名。
在go中对于结构体提供了tag标记,如果是一个要转换json的结构体可以加上json tag指定json转换后的名字

下面修改结构体

type User struct {
	Name    string `json:"name"`
	Age     int16  `json:"age"`
	Married bool   `json:"married"`
}

再次执行

{"name":"juan","age":20,"married":false}
------------------------
&{wendell 25 true}

Process finished with the exit code 0

go语言中json的使用就介绍到这里,大家赶紧实践一下吧。
欢迎关注,学习不迷路!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值