Golang将代码执行结果导出为JSON文件的方法
Golang将代码执行结果导出为JSON文件的方法 你好, 我想将我的代码结果(通过一个简单的函数 testFunct 表示如下)导出到一个 JSON 文件中。我尝试创建一个结构体列表,但不确定这是否是正确的做法。有人能帮忙吗?谢谢…
package main
import (
"fmt"
)
func main() {
type allResults struct {
length, result int
}
out := []allResults {}
for i := 0; i < 10; i++ {
n := allResults{length: i, result: testFunct(i)}
out = append(out,n)
}
fmt.Println(out)
}
func testFunct(length int) int{
return length*10
}
更多关于Golang将代码执行结果导出为JSON文件的方法的实战教程也可以访问 https://www.itying.com/category-94-b0.html
2 回复
我不太清楚你具体关心的是什么,但如果你想在代码中生成结构体切片,只需按以下步骤操作:
-
在你的导入中添加 encoding/json
-
你需要导出结构体的字段,所以将它们改为大写
type allResults struct { Length, Result int } -
将所有对字段的引用从小写改为大写
-
要生成 JSON 字符串,只需这样做
b, err := json.Marshal(out) if err != nil { panic(err) } fmt.Println(string(b))
更多关于Golang将代码执行结果导出为JSON文件的方法的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
要将代码执行结果导出为JSON文件,可以使用encoding/json包。以下是修改后的代码示例:
package main
import (
"encoding/json"
"fmt"
"os"
)
func main() {
type allResults struct {
Length int `json:"length"`
Result int `json:"result"`
}
out := []allResults{}
for i := 0; i < 10; i++ {
n := allResults{Length: i, Result: testFunct(i)}
out = append(out, n)
}
// 将结果转换为JSON
jsonData, err := json.MarshalIndent(out, "", " ")
if err != nil {
fmt.Println("JSON编码错误:", err)
return
}
// 写入文件
err = os.WriteFile("results.json", jsonData, 0644)
if err != nil {
fmt.Println("文件写入错误:", err)
return
}
fmt.Println("结果已成功导出到 results.json")
}
func testFunct(length int) int {
return length * 10
}
关键修改点:
- 结构体字段首字母大写(
Length和Result),这是json包访问字段的要求 - 添加了JSON标签来指定导出时的字段名
- 使用
json.MarshalIndent生成格式化的JSON数据 - 使用
os.WriteFile将JSON数据写入文件
运行后会在当前目录生成results.json文件,内容如下:
[
{
"length": 0,
"result": 0
},
{
"length": 1,
"result": 10
},
{
"length": 2,
"result": 20
},
// ... 其他结果
]

