JSON处理
-
是什么:
它是指对JSON(JavaScript Object Notation)数据进行操作和转换的过程。JSON是一种轻量级的数据交换格式,常用于在不同系统之间传输和存储数据。
-
为什么:
-
可读性和可调试性好:JSON使用简洁的文本格式表示数据
eg. Person结构体的JSON表示为
{"name":"Alice","age":25} -
跨平台和编程语言进行交流和共享数据
-
支持各种复杂的数据结构,将对象、切片等转化为字符串,方便传输
-
易于生成和解析
-
-
适用场合:
-
数据交换
-
存储配置信息:保存用户偏好设置
eg. "Autosave: on, RTX: on"用字符串来保存
-
在Web API中用JSON在客户端和服务器之间进行数据传输
-
-
怎么做:
-
在Go中,可以使用内置的
encoding/json包 -
【生成】使用
json.Marshal函数Go数据结构 → JSON格式字节切片
-
【解析】使用
json.Unmarshal函数JSON格式字节切片 → Go数据结构
-
实例:紫色为重点
-
package main
import (
"encoding/json"
"fmt"
)
type Person struct {
Name string `json:"name"`
Age int `json:"age"`
}
func main() {
// 编码为JSON
person := Person{Name: "Alice", Age: 25}
jsonData, err := json.Marshal(person)
if err != nil {
fmt.Println("JSON encoding error:", err)
return
}
fmt.Println(string(jsonData))
//结果:{"name":"Alice","age":25}
// 解码JSON
var decodedPerson Person
err = json.Unmarshal(jsonData, &decodedPerson)
if err != nil {
fmt.Println("JSON decoding error:", err)
return
}
fmt.Println(decodedPerson)
//结果:{Alice 25}
}
时间处理
time包
`time.Now()` 获取当前时间
`t2.Sub(t1)` t2减去t1得到`XXh XXm XXs` 结果
字符串和数字之间的转换
strconv 包,string convert
strconv.ParseInt("123", 0, 64)得到123,将字符串转换为数字,0代表自动识别进制,64代表精度位数strconv.Atoi("123")快速转化为数字