gpt4 book ai didi

json - 将 map 转换为 json 在 golang 中给出了很多整数

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

我正在尝试将 map 转换为 JSON 字符串。但是我下面的代码似乎产生了一个数字数组。

这是我的 main.go

package main

import (
"encoding/json"
"log"
)

type column struct {
field string
fieldType string
}

type tblSchema struct {
tbl string
columns map[string]column
}
func main() {
mapper := make(map[string]tblSchema)
columns := make(map[string]column)
columns["first"] = column{field:"user_id",fieldType:"int(11)"}
mapper["t_user"] = tblSchema{tbl:"t_user",columns:columns}
jsonString, _ := json.Marshal(mapper)
log.Println(jsonString)
//log.Println(mapper)
}

这会产生以下输出

[123 34 116 95 117 115 101 114 34 58 123 125 125]

如果我取消注释 log.Println(mapper) , 我得到

map[t_user:{t_user map[first:{user_id int(11)}]}]

我做错了什么?我希望 jsonString 具有以下格式

{
"t_user":{
"tbl":"t_user",
"columns":{
"first":{
"field":"user_id",
"fieldType":"int(11)"
}

}
}

最佳答案

func Marshal(v interface{}) ([]byte, error)

返回 []byte 所以你需要把它转换成 string:

log.Println(string(jsonString))

编辑

这将产生预期的结果

package main

import (
"encoding/json"
"log"
)

type Column struct {
Field string
FieldType string
}

type TblSchema struct {
Tbl string
Columns map[string]Column
}
func main() {
mapper := make(map[string]TblSchema)
columns := make(map[string]Column)
columns["first"] = Column{Field:"user_id",FieldType:"int(11)"}
mapper["t_user"] = TblSchema{Tbl:"t_user",Columns:columns}
jsonString, _ := json.Marshal(mapper)
log.Println(string(jsonString))
log.Println(mapper)
}

关于json - 将 map 转换为 json 在 golang 中给出了很多整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46881944/

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