可以透過使用 gjson 函式庫或 json.Unmarshal 函數將 JSON 資料儲存到 MySQL 資料庫中。 gjson 函式庫提供了方便的方法來解析 JSON 字段,而 json.Unmarshal 函數需要一個目標類型指標來解組 JSON 資料。這兩種方法都需要準備 SQL 語句和執行插入操作來將資料持久化到資料庫中。
如何在Golang 中將JSON 資料保存到資料庫中
引言
在Golang中,將JSON 資料儲存到資料庫是一個常見任務。本文將探討使用常用資料庫(如 MySQL)將 JSON 資料持久化的不同方法,並提供實戰案例以供參考。
使用 gjson 函式庫
gjson 函式庫是一個流行的 Golang 包,用於解析和操作 JSON 資料。它提供了簡單的方法將 JSON 資料解析為 Go 資料結構,例如 map 和 slice。
package main import ( "database/sql" "encoding/json" "fmt" _ "github.com/go-sql-driver/mysql" "github.com/tidwall/gjson" ) func main() { db, err := sql.Open("mysql", "user:password@tcp(localhost:3306)/database") if err != nil { panic(err) } defer db.Close() jsonData := `{ "name": "John Doe", "age": 30, "address": { "street": "Main Street", "city": "New York" } }` values := []interface{}{} // 解析 JSON 字段 name := gjson.Get(jsonData, "name").String() age := gjson.Get(jsonData, "age").Int() address := gjson.Get(jsonData, "address").String() values = append(values, name, age, address) // 准备 SQL 语句 stmt, err := db.Prepare("INSERT INTO users (name, age, address) VALUES (?, ?, ?)") if err != nil { panic(err) } // 执行插入操作 _, err = stmt.Exec(values...) if err != nil { panic(err) } fmt.Println("JSON data saved to database successfully") }
使用 json.Unmarshal
json.Unmarshal 函數是 Golang 標準函式庫的一部分,用於將 JSON 資料解組到 Go 變數中。此方法需要一個目標類型指標作為第二個參數。
package main import ( "database/sql" "encoding/json" "fmt" _ "github.com/go-sql-driver/mysql" ) func main() { db, err := sql.Open("mysql", "user:password@tcp(localhost:3306)/database") if err != nil { panic(err) } defer db.Close() jsonData := `{ "name": "John Doe", "age": 30, "address": { "street": "Main Street", "city": "New York" } }` var user struct { Name string Age int Address string } err = json.Unmarshal([]byte(jsonData), &user) if err != nil { panic(err) } // 准备 SQL 语句 stmt, err := db.Prepare("INSERT INTO users (name, age, address) VALUES (?, ?, ?)") if err != nil { panic(err) } // 执行插入操作 _, err = stmt.Exec(user.Name, user.Age, user.Address) if err != nil { panic(err) } fmt.Println("JSON data saved to database successfully") }
以上是如何在 Golang 中將 JSON 資料保存到資料庫中?的詳細內容。更多資訊請關注PHP中文網其他相關文章!