天天看点

Go语言中json数据格式的解析

函数调用

jsonStu, err := json.Marshal(stu)
           

背景

Json(Javascript Object Nanotation)是一种数据交换格式,常用于前后端数据传输。任意一端将数据转换成json 字符串,另一端再将该字符串解析成相应的数据结构,如string类型,strcut对象等。

函数作用

将数据编码成json字符串格式

demo

package main

import (
	"encoding/json"
	"fmt"
)
// 结构体转变为json数据

type Stu struct {
Name  string `json:"name"`
Age   int `json:"年龄"`
HIgh  bool
Sex   string
Class *Class `json:"班级"`
}

type Class struct {
Name  string
Grade int
}

func main() {
//实例化一个数据结构,用于生成json字符串
stu := Stu{
Name: "张三",
Age:  18,
HIgh: true,
Sex:  "男",
}

//指针变量 申请指针变量
cla := new(Class)
cla.Name = "1班"
cla.Grade = 3
stu.Class=cla

//Marshal失败时err!=nil
jsonStu, err := json.Marshal(stu)
if err != nil {
fmt.Println("生成json字符串错误")
}

//jsonStu是[]byte类型,转化成string类型便于查看
fmt.Println(string(jsonStu))
}
           
  1. 其中转化过程中默认key为变量名,如果后面有json标注,即为后面的部分。
  2. 注意转化必须变量首字母必须大写(可导出)