我们设计了一个"出口";API,允许用户下载包含信息的json文件。json是一个数组。现在我们有点进退两难了。
直接调用json.Marshal
(没有缩进,不太友好)
[{"foo":"bar"},{"foo1":"bar1"}]
Calljson.MarshalIndent
, orjson.Indent(dst, src, "", " ")
(too much缩进)
[
{
"foo": "bar"
},
{
"foo1": "bar1"
}
]
我想要这种
[
{"foo": "bar"},
{"foo1": "bar1"}
]
任何想法?
如果结构是固定的,您可以像这样手动编码:
func MarshalArray(in []Obj, out io.Writer) {
io.WriteString(out,"[")
for i,x:=range in {
if i>0 {
out.Write([]byte(","))
}
io.WriteString("n ")
data,_:=json.Marshal(x)
io.Write(data)
}
io.WriteString(out,"n]")
}