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. 데이터베이스 연결을 엽니다.
db, err := sql.Open("mysql", "user:password@tcp(host:port)/database") if err != nil { // 处理错误 }
3. 데이터를 검색합니다. 데이터베이스에서 JSON 데이터를 검색하려면 sql.RawBytes
유형을 사용하세요.
rows, err := db.Query("SELECT json_column FROM table_name") if err != nil { // 处理错误 }
4. 행 스캔sql.RawBytes
类型。
var jsonBytes []byte err = rows.Scan(&jsonBytes) if err != nil { // 处理错误 }
4. 扫描行
对于查询的每一行,使用 Scan
方法将 json_column
列扫描到 sql.RawBytes
类型的变量中。
var jsonObject map[string]interface{} err = json.Unmarshal(jsonBytes, &jsonObject) if err != nil { // 处理错误 }
5. 反序列化 JSON 数据
要将二进制 JSON 数据反序列化为 JSON 对象,请使用 json.Unmarshal
函数。
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
的 JSON
列。要从 users
表中检索 json_data
列:
以上代码将遍历 users
表中的每一行,将 json_data
Scan
메서드를 사용하여 json_column
열을 sql.RawBytes 변수를 입력합니다. 🎜rrreee🎜🎜5. JSON 데이터 역직렬화🎜🎜🎜바이너리 JSON 데이터를 JSON 개체로 역직렬화하려면 <code>json.Unmarshal
함수를 사용하세요. 🎜rrreee🎜🎜실용 사례🎜🎜🎜 json_data
라는 JSON
열이 있는 users
라는 테이블이 있다고 가정해 보세요. users
테이블에서 json_data
열을 검색하려면: 🎜rrreee🎜위 코드는 users
테이블의 각 행을 반복하고 json_data 열을 JSON 개체로 역직렬화하고 콘솔에 인쇄합니다. 🎜위 내용은 Golang의 데이터베이스에서 JSON 데이터를 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!