当前位置: 首页 > wzjs >正文

网站上的网站地图怎么做百度问答一天能赚100块吗

网站上的网站地图怎么做,百度问答一天能赚100块吗,网站开发 卡片,老板让我做镜像网站犯法吗在 Go 语言中,JSON 字段(也称为 JSON Tag)是附加在结构体字段上的元数据,用于控制该字段在 JSON 编码(序列化)和解码(反序列化) 时的行为。它的语法是: type StructName…

在 Go 语言中,JSON 字段(也称为 JSON Tag)是附加在结构体字段上的元数据,用于控制该字段在 JSON 编码(序列化)和解码(反序列化) 时的行为。它的语法是:

type StructName struct {FieldName FieldType `json:"json_field_name,option1,option2,..."`
}

例如:

type User struct {Name string `json:"name"`           // 字段在 JSON 中显示为 "name"Age  int    `json:"age,omitempty"`  // 如果 Age 是零值,JSON 中会忽略它
}

JSON 字段的作用

指定 JSON 字段名

默认情况下,Go 结构体的字段名会直接作为 JSON 的键名(首字母大写转为小写)。但通过 json Tag,可以自定义 JSON 中的键名:

type Message struct {Sender string `json:"sender"`  // Go 字段 `Sender` → JSON 键 `"sender"`
}
  • 输入 Go 结构体
msg := Message{Sender: "Alice"}
  • 输出 JSON
{"sender": "Alice"}

忽略空值字段

如果字段是零值(如 0""nil),加上 omitempty 后,该字段不会出现在 JSON 中:

type User struct {Name string `json:"name,omitempty"`  // 如果 Name 是 "",JSON 中不会包含该字段Age  int    `json:"age,omitempty"`   // 如果 Age 是 0,JSON 中不会包含该字段
}
  • 输入 Go 结构体
user := User{Age: 0}
  • 输出 JSON
{}

忽略字段(-

如果某个字段不需要出现在 JSON 中,可以用 - 忽略它:

type Config struct {Password string `json:"-"`  // 该字段不会参与 JSON 序列化
}
  • 输入 Go 结构体
cfg := Config{Password: "123456"}
  • 输出 JSON
{}

encoding/json

在 go 中,encoding/json包下提供对应的函数来进行 json 的序列化与反序列化,主要使用的有如下函数。

func Marshal(v any) ([]byte, error) //将go对象序列化为json字符串func Unmarshal(data []byte, v any) error //将json字符串反序列化为go对象

首先定义结构体

type Person struct {UserId   stringUsername stringAge      intAddress  string
}

序列化

func main() {person := Person{UserId:   "120",Username: "jack",Age:      18,Address:  "usa",}bytes, err := json.Marshal(person)if err != nil {fmt.Println(err)return}fmt.Println(string(bytes))
}

结果

{ "UserId": "120", "Username": "jack", "Age": 18, "Address": "usa" }

字段重命名

我们可以通过结构体标签来达到重命名的效果。

type Person struct {UserId   string `json:"id"`Username string `json:"name"`Age      int    `json:"age"`Address  string `json:"address"`
}

此时输出

{ "id": "1202", "name": "jack", "age": 19, "address": "USA" }

缩进

序列化时默认是没有任何缩进的,这是为了减少传输过程的空间损耗,但是这并不利于人为观察,在一些情况下我们需要将其序列化成人类能够观察的形式。为此,只需要换一个函数。

func main() {person := Person{UserId:   "1202",Username: "jack",Age:      19,Address:  "USA",}bytes, err := json.MarshalIndent(person, "", "\t")if err != nil {fmt.Println(err)return}fmt.Println(string(bytes))
}

输出如下

{"id": "1202","name": "jack","age": 19,"address": "USA"
}

反序列化

在反序列化时需要注意,如果结构体有 json 标签的话,则字段名优先以 json 标签为准,否则以结构体属性名为准。

func main() {person := Person{}jsonStr := "{\"id\":\"120\",\"name\":\"jack\",\"age\":18,\"address\":\"usa\"}\n"err := json.Unmarshal([]byte(jsonStr), &person)if err != nil {fmt.Println(err)return}fmt.Printf("%+v", person)
}

输出

{UserId:120 Username:jack Age:18 Address:usa}

参考资料:

Golang 中文学习文档 标准库 encoding/json包

http://www.dtcms.com/wzjs/394871.html

相关文章:

  • 网站建设的策划书最好的网站设计公司
  • 南宁企业网站排名优化私密浏览器免费版
  • 台州网站制作现在感染症状有哪些
  • wordpress禁止评论昵称外链惠州seo博客
  • 网站建设需要多少天时间百度官网下载电脑版
  • wordpress 云笔记硬件优化大师
  • 网站日志分析的意义百度快照怎么打开
  • 兰州 网站建设网页设计网站建设
  • 网上做相册网站学it需要什么学历基础
  • 西宁建设网站多少钱网络运营主要做什么工作
  • 东胜网站建设网络营销是什么?
  • 佛山国内快速建站百度推广售后客服电话
  • 加强官方网站建设知名网站排名
  • b2c网站结构分析新网seo关键词优化教程
  • 东营市做网站各大网站收录提交入口
  • 如何编辑网站标题栏合肥百度推广排名优化
  • 做网站都用什么工具广州市运营推广公司
  • 宁波网络营销方式合肥seo
  • 国内外网站开发现状万网
  • wordpress网站建设教程视频aso排名
  • 网站建设与推广实训报告百度一下你就知道首页
  • 网站建设销售信北京百度总部电话
  • 社交网站建设网首页排名优化公司
  • 目前网站在初级建设阶段_需要大量数据丰富站长工具是什么
  • 郑州市的实惠推广网站软件定制开发公司
  • 做板材外贸一般用哪个网站网络销售怎么找客户
  • 网站怎样制作吸引人网络科技公司
  • 我是做装修的怎么样投资网站十大经典广告营销案例
  • 企业做网站系统热门职业培训班
  • 防护口罩应该选用网站seo查询站长之家