gpt4 book ai didi

json - 编码结构 slice 时向生成的 JSON 添加外部标记

转载 作者:行者123 更新时间:2023-12-01 22:33:51 25 4
gpt4 key购买 nike

我很难在我的编码(marshal) JSON 结构中添加一个外部标签。这是我的例子:

package main

import (
"encoding/json"
"fmt"
"log"
"time"
)

type tObj struct {
ModTime time.Time `json:"mTime"`
Name string `json:"mName"`
}

func main() {
var objs []tObj
objs = append(objs, getItem("first"))
objs = append(objs, getItem("second"))

json, err := json.MarshalIndent(objs, "", " ")
if err != nil {
log.Fatal(err)
}
fmt.Println(string(json))
}

func getItem(name string) tObj {
var t tObj
t.ModTime = time.Now()
t.Name = name
return t
}
到目前为止一切顺利,这给了我这样的东西:
[{
"mTime": "2020-06-26T21:29:52.148663+02:00",
"mName": "first"
},
{
"mTime": "2020-06-26T21:29:52.148666+02:00",
"mName": "second"
}
]
我想要的只是向生成的 JSON 添加一个外部标签,如下所示:
{
"objects": [{
"mTime": "2020-06-26T21:29:52.148663+02:00",
"mName": "first"
},
{
"mTime": "2020-06-26T21:29:52.148666+02:00",
"mName": "second"
}
]
}
我尝试将 json 注释直接添加到 struct 类型,但这不起作用。实现这一目标的最简单方法是什么?

最佳答案

您不再是编码一个数组,而是编码一个对象。您可以通过以下方式实现:

json, err := json.MarshalIndent(map[string]interface{}{"objects":objs}, "", "    ")

关于json - 编码结构 slice 时向生成的 JSON 添加外部标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62601819/

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