为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用高浪在 JSON 中打印 SQL 行?

如何使用高浪在 JSON 中打印 SQL 行?

Go
紫衣仙女 2022-09-26 20:07:10
我了解如何使用大猩猩/ mux go包返回JSON,但我希望能够在开发中打印JSON,而不必将其包装到路由端点我有以下代码,并希望列出postgresql数据库中的用户package mainimport (    "encoding/json"    "fmt"    "gorm.io/driver/postgres"    "gorm.io/gorm")var DB *gorm.DBvar err errorconst DNS = "host=localhost user=postgres_user password=postgres_password dbname=postgres_db port=5432 sslmode=disable"type User struct {    gorm.Model    FirstName string `json:"firstname"`    LastName  string `json:"lastname"`    Email     string `json:"email"`}func PostgresTest() {    DB, err = gorm.Open(postgres.Open(DNS), &gorm.Config{})    if err != nil {        fmt.Println(err.Error())        panic("Cannot connect to DB")    }        var users []User        DB.Limit(2).Find(&users)    // json.NewEncoder(w).Encode(users)    fmt.Println(json.Marshal(users))}func main() {    PostgresTest()}这是我期待的[    {        "ID": 1,        "CreatedAt": "2021-09-06T14:18:47.766414-05:00",        "UpdatedAt": "2021-09-06T14:18:47.766414-05:00",        "DeletedAt": null,        "firstname": "first1",        "lastname": "last1",        "email": "first1.last1@email.com"    },    {        "ID": 2,        "CreatedAt": "2021-09-06T14:18:58.144181-05:00",        "UpdatedAt": "2021-09-06T14:18:58.144181-05:00",        "DeletedAt": null,        "firstname": "first2",        "lastname": "last2",        "email": "first2.last2@email.com"    }]我该怎么做才能打印 JSON 或 JSON 列表?
查看完整描述

2 回答

?
慕容森

TA贡献1853条经验 获得超18个赞

json.Marshal函数返回,因此您在输出中看到的是 JSON 结果中每个字节的十进制表示形式。您必须直接将返回的转换为字符串,如下所示[]byte[]bytejson.Marshal


jsonUsers, err := json.Marshal(users)

if err != nil {

  log.Fatal(err)

}

fmt.Println(string(jsonUsers))

或使用格式化程序


jsonUsers, err := json.Marshal(users)

if err != nil {

  log.Fatal(err)

}

fmt.Printf("%s", jsonUsers)

我还建议您阅读软件包文档,以便找到如何设置JSON格式。encoding/json


查看完整回答
反对 回复 2022-09-26
?
红糖糍粑

TA贡献1815条经验 获得超6个赞

用string(jsonbytecode)


type B struct {

    C int

    D int

}

    

func main() {

    b := B{C: 4, D: 5}

    js, _ := json.Marshal(b)

    fmt.Println(js)

    fmt.Println(string(js))

}

这是输出,转换为 JSONstring(js)


[123 34 67 34 58 52 44 34 68 34 58 53 125]

{"C":4,"D":5}


查看完整回答
反对 回复 2022-09-26
  • 2 回答
  • 0 关注
  • 57 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信