go-json是一個使用Go編寫的JSON解析和編碼庫。該庫允許將JSON字符串轉換成Go數據結構,并將Go數據結構編碼成JSON字符串。go-json支持基本類型、切片、數組、結構體、嵌套結構體等類型的解析和編碼。
package main import ( "encoding/json" "fmt" ) type Student struct { Name string `json:"name"` Age int `json:"age"` School string `json:"school"` } func main() { jsonStr := `{"name": "Tom", "age": 18, "school": "PKU"}` var student Student err := json.Unmarshal([]byte(jsonStr), &student) if err != nil { fmt.Println("解析出錯:", err) return } fmt.Println(student.Name, student.Age, student.School) //輸出:Tom 18 PKU data, err := json.Marshal(student) if err != nil { fmt.Println("編碼出錯:", err) return } fmt.Println(string(data)) //輸出:{"name":"Tom","age":18,"school":"PKU"} }
上述代碼中,使用json.Unmarshal將JSON字符串解析成Student結構體,結構體字段使用`json:`標簽來指定對應的JSON字段名。使用json.Marshal將Student結構體編碼成JSON字符串。
除了基本使用外,go-json還提供了許多高級功能,如使用自定義編碼器/解碼器、自定義編碼/解碼行為、處理空值和零值的方法等。
在Go語言中,JSON處理已成為標準庫的一部分,但go-json提供了更靈活、更易用、更高效的JSON解析和編碼,使得開發人員能夠更輕松地處理復雜的JSON數據。