我的任务是将我的项目从Python转换到Go,但我在这个问题上遇到了几个小时的困难。
我有一个文件data.json,它包含以下数据
{
"mobiles":["iPhone 13 Pro","OnePlus 10 Pro","Google Pixel 6"],
"laptops":["Dell XSP 13","Acer Chromebook Spin","Lenovo ThinkPad x1"],
"cars":["Suzuki Crossover","Golf GTI","Hyundai Tucson","Hyundai Kona"]
}对于我的项目,我希望将数据从data.json加载到下面的片中
mobiles := []{ data from json }
laptops := []{ data from json }
cars := []{ data from json }我正在考虑使用片,如果我没有错的话,是否允许我根据需要向json文件中的数组添加更多的数据?
jsonFile, err := os.Open("data/data.json")
if err != nil {
fmt.Println(err)
}
fmt.Println(jsonFile)
fmt.Println("Successfully Opened data.json")这给了我:&{0xc000062180}成功地打开了data.json
我试图针对我需要的数据,例如:
fmt.Println(jsonFile["cars"])我需要学习指南针,还是完全地在错误的树上吠叫?
发布于 2022-10-31 16:16:14
package main
import (
"encoding/json"
"fmt"
"io/ioutil"
"os"
)
type Todo struct {
Mobiles []string `json:"mobiles"`
Laptops []string `json:"laptops"`
Cars []string `json:"cars"`
}
func main() {
jsonFile, err := os.Open("file.json")
if err != nil {
panic(err)
}
defer jsonFile.Close()
byteValue, err := ioutil.ReadAll(jsonFile)
if err != nil {
panic(err)
}
var todo Todo
json.Unmarshal([]byte(byteValue), &todo)
fmt.Println(todo)
fmt.Println(todo.Cars)
}第一个输出将是json文件。
{iPhone 13 Pro OnePlus 10亲谷歌Pixel 6铃木交叉高尔夫GTI现代图森现代现代科纳}
第二辆车
铃木交叉高尔夫GTI现代图森现代现代科纳
https://stackoverflow.com/questions/74265470
复制相似问题