go语言之json的使用

bojie5744 · · 1825 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

go语言之json的使用

作为先天具有高并发的go语言,经常用于网络传输,go语言为我们提供了json的数据封装,

便于数据的交换和解析。下面来看看go语言中的json使用。代码最为明显。

重要函数

func Marshal(v interface{}) ([]byte, error) 编码成JSON数据

func Unmarshal(data []byte, v interface{}) error 将JSON数据解码

package main

import (
	"encoding/json"
	"fmt"
)

type test struct {
	Name string `json:"test_name"`
	Age  int    `json:"test_age"`
	g    int    `json:"test_g"` //这里外层的不是单引号
}

func main() {
	t := test{
		Name: "bojie",
		Age:  100,
		g:    1, //注意这里也要有个逗号
	}
	data, _ := json.Marshal(t)
	fmt.Println(data, string(data))
	var t1 test
	_ = json.Unmarshal(data, &t1)
	fmt.Println(t1.Name)<span style="font-family: Arial, Helvetica, sans-serif;">}</span>



上面的代码输出如下

[123 34 116 101 115 116 95 110 97 109 101 34 58 34 98 111 106 105 101 34 44 34 116 101 115 116 95 97 103 101 34 58 49 48 48 125] 
{"test_name":"bojie","test_age":100} bojie


看输出就可以知道,data为[]byte类型。

对,细心的会发现,为什么g的信息没有呢?那是因为大小写的问题,如果结构体内的名字为小写则自动

进行忽略。不会进行json封装。

恩,上面是对结构体的json编码和解码。

那我们怎么从以下字符串读取到test_name的值呢?

{"test_name":"bojie","test_age":100}

我们可以先把创建一个map类型 如 var tmp map[string]string

然后

json.Unmarshal(msg, &tmp);//msg为上面的字符串,tmp为map类型

然后我们可以通过tmp["test_name"]就可以获得bojie这个值了。



有疑问加站长微信联系(非本文作者)

本文来自:CSDN博客

感谢作者:bojie5744

查看原文:go语言之json的使用

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1825 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传