Go Json的概念,应用场景、格式和在线解析

Json的概念

  • JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。
  • JSON是在2001年开始推广使用的数据格式,目前已经成为主流的数据格式
  • JSON易于机器解析和生成,并有效地提升网络传输效率,通常程序在网络传输时会先将数据(结构体、map等)序列化成json字符串,到接收方得到json字符串时,在反序列化恢复成原来的数据类型(结构体、map等)。这种方式已然成为各个语言的标准。

应用场景

 


json 数据格式说明

  • Js语言中,一切都是对象。因此,任何的数据类型都可以通过JSON来表示,例如字符串、数字、对象、数组,map,结构体等.
  • 任何数据类型都可以转成Json格式
  • JSON键值对是用来保存数据一种方式
    • 键/值对组合中的键名写在前面并用双引号"”包裹,使用冒号:分隔然后紧接着值,数组使用中括号。
[{"key1":val1,"key2":val2,"key3":val3,"key4":[val4,val5]},
{"key1":val1,"key2":val2,"key3":val3,"key4":[val4,val5]}]
  • 比如:
{"firstName":"Json"}
{"name":"tom","age":18,"address": ["北京","上海"]}
[{"name":"tom","age":18,"address": ["北京","上海"]},{"name":"mary","age":28,"address":["广州","深圳"]}]

json 数据在线解析

  • 网址https://www.json.cn/
  • 网站可以验证一个 json 格式的数据是否正确。尤其是在我们编写比较复杂的json 格式数据时,很有用。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Go语言标准库中有一个内置的 `encoding/json` 包,用于将Go语言中的数据类型转换为JSON格式的数据或者将JSON格式的数据解析成Go语言中的数据类型。 以下是将Go语言中的数据类型转换为JSON格式的数据的示例代码: ```go package main import ( "encoding/json" "fmt" ) type Person struct { Name string `json:"name"` Age int `json:"age"` } func main() { p := Person{Name: "Alice", Age: 18} jsonBytes, err := json.Marshal(p) if err != nil { fmt.Println("failed to marshal Person to JSON:", err) return } fmt.Println(string(jsonBytes)) } ``` 输出结果为: ``` {"name":"Alice","age":18} ``` 以下是将JSON格式的数据解析成Go语言中的数据类型的示例代码: ```go package main import ( "encoding/json" "fmt" ) type Person struct { Name string `json:"name"` Age int `json:"age"` } func main() { jsonStr := `{"name": "Bob", "age": 20}` var p Person err := json.Unmarshal([]byte(jsonStr), &p) if err != nil { fmt.Println("failed to unmarshal JSON to Person:", err) return } fmt.Println(p.Name, p.Age) } ``` 输出结果为: ``` Bob 20 ``` 在上述示例代码中,`json.Marshal` 函数用于将 `Person` 结构体转换为JSON格式的数据,`json.Unmarshal` 函数用于将JSON格式的数据解析成 `Person` 结构体。需要注意的是, `Person` 结构体中的字段必须是导出的(即首字母大写),否则 `json.Marshal` 和 `json.Unmarshal` 函数将无法正常工作。此外,结构体字段的 `json` tag 可以指定JSON格式中对应的字段名。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值