gpt4 book ai didi

json - 使用 sqlx 包映射到 JSON 的行

转载 作者:IT王子 更新时间:2023-10-29 00:44:14 36 4
gpt4 key购买 nike

为了将结果转换为 JSON 字符串,我必须使用 MapScan,因为我没有表示数据的结构,所以这就是我所做的

import (
"fmt"
"log"
"encoding/json"
_ "github.com/jmoiron/sqlx"
_ "github.com/go-sql-driver/mysql"
)

func main() {
db, err := sqlx.Connect("mysql", "uname:pwd@/db")
if err != nil {
log.Fatal(err)
}

m := map[string]interface{}{}

//Go through rows
rows, err := db.Queryx("SELECT id,cname FROM items")
for rows.Next() {
err := rows.MapScan(m)
if err != nil {
log.Fatal(err)
}
}

//Marshal the map
b, _ := json.Marshal(m)

//Prints the resulted json
fmt.Printf("Marshalled data: %s\n", b)
}

输出是编码数据:{"cname":"c29tZWl0ZW0","id":"MA==​​"}

它应该是 Marshalled data: {"cname":"someitem","id":0}

我不确定如何解决这个问题,因为在 base64 编码中返回值,有什么想法吗?

最佳答案

只需遍历您的 map 并在编码 map 之前解码 base64 字符串:

for k, encoded := range m {
decoded, err := base64.StdEncoding.DecodeString(encoded)
if err != nil {
log.Fatal("error:", err)
}
m[k] = decoded
}

b, _ := json.Marshal(m)

您必须将此添加到您的导入中:"encoding/base64"

关于json - 使用 sqlx 包映射到 JSON 的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24752814/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com