【建站服务】迪庆企业网站设计 - 迪庆高端网站定制 - 迪庆品牌网站搭建 - 上往建站-域名申请
作者: 风兰 . 阅读量: 1 . 发表时间:2022-09-21 05:49:55
上往建站提供服务器空间服务商,百度快照排名,网站托管,百度推广运营,致力于设计外包服务与源代码定制开发,360推广,搜狗推广,增加网站的能见度及访问量提升网络营销的效果,主营:网站公司,百度推广公司电话,官网搭建服务,网站服务企业排名,服务器空间,英文域名等业务,专业团队服务,效果好。
迪庆企业网站设计 - 迪庆高端网站定制 - 迪庆品牌网站搭建 - 上往建站

,划重点
当要将结构体对象转换为 JSON 时,对象中的属性首字母必须是大写,才能正常转换为 JSON。
示例一:
type Person struct {
Name string //Name字段首字母大写
age int //age字段首字母小写
}
func main() {
person:=Person{"小明",18}
if result,err:=json.Marshal(&person);err==nil{ //json.Marshal 将对象转换为json字符串
fmt.Println(string(result))
}
}
控制台输出:
{"Name":"小明"} //只有Name,没有age
示例二:
type Person struct{
Name string //都是大写
Age int
}
控制台输出:
{"Name":"小明","Age":18} //两个字段都有
那这样 JSON 字符串以后就只能是大写了么? 当然不是,可以使用 tag 标记要返回的字段名。
示例三:
type Person struct{
Name string `json:"name"` //标记json名字为name
Age int `json:"age"`
Time int64 `json:"-"` // 标记忽略该字段
}
func main(){
person:=Person{"小明",18, time.Now().Unix()}
if result,err:=json.Marshal(&person);err==nil{
fmt.Println(string(result))
}
}
控制台输出:
{"name":"小明","age":18}
灭霸
灭霸
143***7200@qq.com
2年前 (2020-09-07)
森林里的小动物
wuk***67@gmail.com
6
使用结构体的时候需要注意的点:定义的结构体如果只在当前包内使用,结构体的属性不用区分大小写。如果想要被其他的包引用,那么结构体的属性的首字母需要大写。例如
package mode
//结构体小写开头的属性只能包内调用
type Books struct {
Title string
Author string
Subject string
book_id int
}
当该结构体被引用时:
import (
"fmt"
"src/mode"
)
func main() {
var Book1 mode.Books /* 声明 Book1 为 Books 类型 */
/* book 1 描述 */
Book1.Title = "Go 语言"
Book1.Author = "www.runoob.com"
Book1.Subject = "Go 语言教程"
// 如果进行了如下调用,则会报错
// Book1.book_id = 6495407
/* 打印 Book1 信息 *
迪庆企业网站设计 - 迪庆高端网站定制 - 迪庆品牌网站搭建 - 上往建站
上往建站提供搭建网站,域名注册,官网备案服务,网店详情页设计,企业网店,专业网络店铺管理运营全托管公司咨询电话,服务器空间,微信公众号托管,网页美工排版,致力于域名申请,竞价托管,软文推广,全网营销,提供标准级专业技术保障,了却后顾之忧,主营:虚拟主机,网站推广,百度竞价托管,网站建设,上网建站推广服务,网络公司有哪些等业务,专业团队服务,效果好。
服务热线:400-111-6878 手机微信同号:18118153152(各城市商务人员可上门服务)
关键词:网站建设,企业网站,网站制作,网页设计,高端网站建设,企业网站制作,网页制作,制作网站,网站设计,高端网页设计,高端网站设计,做网站,自适应网站



width,height float64}func (r *Rect) Area() float64{ //为Rect类型绑定Area的方法,*Rect为指针引用可以修改传入参数的值 return r.width*r.height //方法归属于类型,不归属于具体的对象,声明该类型的对象即可调用该类型的方法}Ng Li
ngl***163.com
MissLi
luy***.w@yahoo.com
参考地址
利用指针改变结构体对应的值:
package mainimport ( "fmt" "strconv")type Books struct { title string author string subject string book_id int}func printBook(book Books) { /*打印函数,没有返回值,传入结构体*/ /*结构体只作为临时参数*/ fmt.Printf("Book title: %s ", book.title) fmt.Printf("Book author: %s ", book.author) fmt.Printf("Book subject: %s ", book.subject) fmt.Printf("Book id: %d ", book.book_id)}func changeBook(book *Books, new_info_type string, new_info string) { if new_info_type == "title" { book.title = new_info } else { if new_info_type == "author" { book.author = new_info } else { if new_info_type == "subject" { book.subject = new_info } else { int, err := strconv.Atoi(new_info) if err == nil { book.book_id = int } } } }}func main() { book1 := Books{"Go Language", "www.golang.com", "Go语言基础", 6495407} book2 := Books{"Harry Porter", "www.youku.com", "Deathly Hallows", 6448722} fmt.Println("------原始信息------") printBook(book1) printBook(book2) fmt.Println("------新的信息-------") changeBook(&book1, "title", "Summer") changeBook(&book2, "book_id", "1111111") printBook(book1) printBook(book2)}MissLi
luy***.w@yahoo.com
参考地址
灭霸
143***7200@qq.com
结构体中属性的首字母大小写问题
注意: 这个 public 和 private 是相对于包(go 文件首行的 package 后面跟的包名)来说的。
敲黑板,划重点
当要将结构体对象转换为 JSON 时,对象中的属性首字母必须是大写,才能正常转换为 JSON。
示例一:
type Person struct { Name string //Name字段首字母大写 age int //age字段首字母小写}func main() { person:=Person{"小明",18} if result,err:=json.Marshal(&person);err==nil{ //json.Marshal 将对象转换为json字符串 fmt.Println(string(result)) }}首字母大写相当于 public。
首字母小写相当于 private。