60_通过结构体生成json


1.json是跨平台.跨语言的数据交换语言

  JSON (JavaScript Object Notation)是一种比XML更轻量级的数据交换格式,在易于人们阅读和编写的同时,也易于程序解析和生成。尽管JSON是JavaScript的一个子集,但JSON采用完全独立于编程语言的文本格式,且表现为键/值对集合的文本描述形式(类似一些编程语言中的字典结构),这使它成为较为理想的、跨平台、跨语言的数据交换语言。



package main

import (
"encoding/json"
"fmt"
)

//通过结构体生成json 文本,其成员变量名必须大写
type People struct {
//由于结构体生成json文本成员变量必须大写,可以使用struct_tag来二次编码,此时可以使用小写
Name string `json:"name"`
Subject []string
Isok bool `json:", string"` //转换成字符串类型输出
Price float64 `json:"-"` //不打印
} //这时输出的成员变量就是小写

func main() {
p1 := People{"steven", []string{"C++", "Go", "Python"}, true, 66.66}

//编码
res, err := json.Marshal(p1)
if err != nil {
fmt.Println("err=", err)
return
}
//fmt.Println(res)//打印的是[]byte格式
fmt.Println(string(res)) //转换成string类型

//格式化编码,使结构更加清晰
res1, err1 := json.MarshalIndent(p1, "", " ") //第二个参数是空,第三个是缩进
if err != nil {
fmt.Println("err1=", err1)
return
}
fmt.Println(string(res1))
}

猜你喜欢

转载自www.cnblogs.com/zhaopp/p/11625966.html