首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从JSON文件中读取数组到GO变量

从JSON文件中读取数组到GO变量
EN

Stack Overflow用户
提问于 2022-10-31 15:21:16
回答 1查看 30关注 0票数 -2

我的任务是将我的项目从Python转换到Go,但我在这个问题上遇到了几个小时的困难。

我有一个文件data.json,它包含以下数据

代码语言:javascript
复制
{
    "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加载到下面的片中

代码语言:javascript
复制
mobiles := []{ data from json }
laptops := []{ data from json }
cars := []{ data from json }

我正在考虑使用片,如果我没有错的话,是否允许我根据需要向json文件中的数组添加更多的数据?

代码语言:javascript
复制
    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

我试图针对我需要的数据,例如:

代码语言:javascript
复制
fmt.Println(jsonFile["cars"])

我需要学习指南针,还是完全地在错误的树上吠叫?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-31 16:16:14

代码语言:javascript
复制
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现代图森现代现代科纳

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74265470

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档