Golang でデータベースから JSON データを取得するには、sql.RawBytes 型を使用して JSON データを保存し、クエリを実行してデータを sql.RawBytes 変数にスキャンし、逆シリアル化します。 JSON データ。
Golang でデータベースから JSON データを取得する方法
Golang では、sql.RawBytes 型を使用して JSON データを保存および取得できます。このアプローチにより、JSON データをバイナリ データとしてデータベースに保存し、取得時に JSON オブジェクトに逆シリアル化することができます。
Golang でデータベースから JSON データを取得する手順は次のとおりです:
1. 必要なライブラリをインストールします
import ( "database/sql" _ "github.com/go-sql-driver/mysql" // 数据库驱动程序(根据需要更改) "encoding/json" )
2. クエリを実行します
データベースから JSON データを取得するには、sql.RawBytes
タイプを使用してください。 db, err := sql.Open("mysql", "user:password@tcp(host:port)/database")
if err != nil {
// 处理错误
}
sql.RawBytes
类型。
rows, err := db.Query("SELECT json_column FROM table_name") if err != nil { // 处理错误 }
4. 扫描行
对于查询的每一行,使用 Scan
方法将 json_column
列扫描到 sql.RawBytes
类型的变量中。
var jsonBytes []byte err = rows.Scan(&jsonBytes) if err != nil { // 处理错误 }
5. 反序列化 JSON 数据
要将二进制 JSON 数据反序列化为 JSON 对象,请使用 json.Unmarshal
函数。
var jsonObject map[string]interface{} err = json.Unmarshal(jsonBytes, &jsonObject) if err != nil { // 处理错误 }
实战案例
假设您有一个名为 users
的表,它有一个名为 json_data
的 JSON
列。要从 users
表中检索 json_data
列:
rows, err := db.Query("SELECT json_data FROM users") if err != nil { // 处理错误 } for rows.Next() { var jsonBytes []byte err = rows.Scan(&jsonBytes) if err != nil { // 处理错误 } var jsonObject map[string]interface{} err = json.Unmarshal(jsonBytes, &jsonObject) if err != nil { // 处理错误 } fmt.Println(jsonObject) }
以上代码将遍历 users
表中的每一行,将 json_data
Scan
メソッドを使用して json_column
列を sql.RawBytes 変数を入力します。 🎜rrreee🎜🎜5. JSON データの逆シリアル化🎜🎜🎜バイナリ JSON データを JSON オブジェクトに逆シリアル化するには、<code>json.Unmarshal
関数を使用します。 🎜rrreee🎜🎜実際的なケース🎜🎜🎜users
という名前のテーブルがあり、そのテーブルに json_data
という名前の JSON
列があるとします。 users
テーブルから json_data
列を取得するには: 🎜rrreee🎜 上記のコードは、users
テーブルの各行を反復処理し、json_data 列を JSON オブジェクトに逆シリアル化して、コンソールに出力します。 🎜以上がGolang でデータベースから JSON データを取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。