gpt4 book ai didi

go - gin-gonic json 转换输出抛出空数组

转载 作者:IT王子 更新时间:2023-10-29 01:01:35 24 4
gpt4 key购买 nike

对于以下 golang 程序,如果我执行 fmt.Print 变量显示值,我无法使用 gin-gonic 库获取 json 输出,但是当我转换为 c.JSON(库存)时它显示空数组,我的代码有什么问题?

   package main

import (
"database/sql"
"os"

"github.com/gin-gonic/gin"
_ "github.com/go-sql-driver/mysql"
)

func index(c *gin.Context) {
hostname, err := os.Hostname()
checkErr(err)
c.String(200, "v3 "+hostname)
}

func healthz(c *gin.Context) {
c.String(200, "OK")
}

type InventoryItem struct {
id int
productID string
productCost int
productAvailabilty int
productSubcat string
}

func checkErr(err error) {
if err != nil {
panic(err)
}
}

/******************* MAIN Function **************/
func main() {
app := gin.Default()
app.GET("/", index)
app.GET("/healthz", healthz)
app.GET("/inventory", fetch)
app.Run(":8000")
}

/******************* End MAIN Function **************/

func fetch(c *gin.Context) {
var (
invt InventoryItem
inventory []InventoryItem
)
connStr := os.Getenv("sql_user") + ":" + os.Getenv("sql_password") + "@tcp(" + os.Getenv("sql_host") + ":3306)/" + os.Getenv("sql_db")
db, err := sql.Open("mysql", connStr)
checkErr(err)
defer db.Close()
rows, err := db.Query("SELECT id,product_id as productID,product_cost as productCost,product_availabilty as productAvailabilty,product_subcat as productSubcat FROM inventory;")
for rows.Next() {
err = rows.Scan(&invt.id, &invt.productID, &invt.productCost, &invt.productAvailabilty, &invt.productSubcat)
checkErr(err)
inventory = append(inventory, invt)
}

checkErr(err)
defer rows.Close()
//fmt.Print(inventory[0].productAvailabilty)
c.JSON(200, inventory)
}

最佳答案

问题是必须导出 InventoryItem 结构字段 -

type InventoryItem struct {
ID int `json:"id"`
ProductID string `json:"product_id"`
ProductCost int `json:"product_cost"`
ProductAvailabilty int `json:"product_availability"`
ProductSubcat string `json:"product_subact"`
}

阅读更多关于 exported and un-exported fields 的信息.

关于go - gin-gonic json 转换输出抛出空数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44611696/

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