Golang如何将数据转换为JSON并格式化保存到文件
Golang如何将数据转换为JSON并格式化保存到文件 我正在将数据转换为JSON格式,并尝试将这些数据写入文件,但数据并未按预期写入文件。
例如:
我使用
DetailJson, err := json.MarshalIndent(Data, "", "\t")
outpuFile := os.create(File)
outPutfile.Write(*DetailJson)
这段代码可以正常工作,但数据在文本文件中是以以下格式插入的: {“ID”:12345} {“ID”:45678}
但我希望是以下格式,有人能帮我解决这个问题吗?
[ {“ID”:12345}, {“ID”:45678}, ]
更多关于Golang如何将数据转换为JSON并格式化保存到文件的实战教程也可以访问 https://www.itying.com/category-94-b0.html
你的 Data 类型及其值是什么?
更多关于Golang如何将数据转换为JSON并格式化保存到文件的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
我正在从数据库中读取数据,因此希望将每条记录保存为新的JSON对象。
这是一个包含一个字段ID且类型为String的结构体。
单个结构体不会被渲染为JSON列表。不过,单个结构体也不会被渲染为两个JSON对象,所以你隐藏了代码中的一些相关部分。
你在输出中看到方括号 [ ],是因为你正在对切片或(对象的)数组进行带缩进的编组。
你可以使用 json.MarshalIndent 将数据序列化为格式化的 JSON 数组。首先,确保你的数据是一个切片(slice),这样它会被编码为 JSON 数组。然后,使用 json.MarshalIndent 来添加缩进和换行,使输出更易读。最后,将结果写入文件。
以下是一个示例代码:
package main
import (
"encoding/json"
"os"
)
type Item struct {
ID int `json:"ID"`
}
func main() {
// 假设 Data 是一个 Item 切片
Data := []Item{
{ID: 12345},
{ID: 45678},
}
// 使用 json.MarshalIndent 将数据转换为格式化的 JSON
DetailJson, err := json.MarshalIndent(Data, "", "\t")
if err != nil {
panic(err)
}
// 创建或打开文件
outputFile, err := os.Create("output.json")
if err != nil {
panic(err)
}
defer outputFile.Close()
// 将 JSON 数据写入文件
_, err = outputFile.Write(DetailJson)
if err != nil {
panic(err)
}
}
运行此代码后,output.json 文件的内容将如下所示:
[
{
"ID": 12345
},
{
"ID": 45678
}
]
如果你希望 JSON 数组的每个元素在同一行,可以调整 json.MarshalIndent 的缩进参数,但通常使用制表符或空格缩进是标准做法。如果你坚持要得到你描述的格式(每个对象在一行,用逗号分隔),可以手动构建 JSON 字符串,但使用 json.MarshalIndent 是更规范的方法。

