为了账号安全,请及时绑定邮箱和手机立即绑定

如何将 json 文件读入地图

如何将 json 文件读入地图

Go
长风秋雁 2023-05-15 15:42:19
我有一个这样的 json 文件 - data.json{    "data1" : {        "tag" : "some_tag1",        "info" : "some_info1",    },     "data2" : {        "tag" : "some_tag2",        "info" : "some_info2",    }}我有一个像下面这样的结构type someStruct struct {    tag    string `json:"tag"`    info   string `json:"info"`}我正在尝试将 json 文件读入下面的地图errorJSON    map[string]someStruct下面是我的代码jsonParser := json.NewDecoder(data.json)err := jsonParser.Decode(&errorJSON)但我收到一个错误json.UnmarshalTypeError我究竟做错了什么
查看完整描述

3 回答

?
慕沐林林

TA贡献2016条经验 获得超9个赞

数据有问题。它不是有效的 JSON,因为它有尾随逗号。


试试这个:


{

    "data1" : {

        "tag" : "some_tag1",

        "info" : "some_info1"

    },

     "data2" : {

        "tag" : "some_tag2",

        "info" : "some_info2"

    }

}


查看完整回答
反对 回复 2023-05-15
?
蓝山帝景

TA贡献1843条经验 获得超7个赞

您必须大写someStruct字段和 json 必须有效格式。


type someStruct struct {

    Tag  string `json:"tag"`

    Info string `json:"info"`

}


查看完整回答
反对 回复 2023-05-15
?
慕哥6287543

TA贡献1831条经验 获得超10个赞

您的示例 json 有多余的逗号 - 已删除


数据结构是一对带键的 someStruct,所以需要是一个映射


大写 json 结构字段


这是一个基于您的代码的工作示例


package main


import (

    "encoding/json"

    "fmt"

)


type someStruct struct {

    Tag  string `json:"tag"`

    Info string `json:"info"`

}


func main() {

    buf := `{

    "data1" : {

        "tag" : "some_tag1",

        "info" : "some_info1"

    },

     "data2" : {

        "tag" : "some_tag2",

        "info" : "some_info2"

    }

}`


    dat := make(map[string]someStruct)


    if err := json.Unmarshal([]byte(buf), &dat); err != nil {

        panic(err)

    }

    fmt.Println("Hello, playground", dat)

}

操场https://play.golang.org/p/ZGuCcGI3vA6


查看完整回答
反对 回复 2023-05-15
  • 3 回答
  • 0 关注
  • 136 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信