什么是JSON?
JSON.parse()
encoding/json
Go语言中的JSON
在Golang中,和其他编程语言一样,我们也需要通过编码和解码来处理JSON数据。
编码
json.Marshal()
示例代码:
package main
import (
"encoding/json"
"fmt"
)
type Person struct {
Name string `json:"name"`
Age int `json:"age"`
}
func main() {
person := Person{
Name: "Tom",
Age: 30,
}
jsonBytes, err := json.Marshal(person)
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Println("JSON Data:", string(jsonBytes))
}
Personjson:"name"json:"age"nameagePersonjson.Marshal()
解码
json.Unmarshal()
示例代码:
package main
import (
"encoding/json"
"fmt"
)
type Person struct {
Name string `json:"name"`
Age int `json:"age"`
}
func main() {
jsonStr := `{"name": "Tom", "age": 30}`
var person Person
err := json.Unmarshal([]byte(jsonStr), &person)
if err != nil {
fmt.Println("Error:", err)
return
}
fmt.Println("Name:", person.Name)
fmt.Println("Age:", person.Age)
}
PersonjsonStrPersonjson.Unmarshal()Person
注意事项
encoding/json
1.在Golang中,结构体中的字段首字母必须大写,否则该字段将无法编码为JSON格式数据;
json: "name"name
3.在解码时,需要确保被解码的字节序列是合法的JSON格式数据,否则解码函数将返回错误。