登录
首页 >  Golang >  Go问答

JSON解析错误

来源:stackoverflow

时间:2024-03-09 19:54:25 213浏览 收藏

大家好,我们又见面了啊~本文《JSON解析错误》的内容中将会涉及到等等。如果你正在学习Golang相关知识,欢迎关注我,以后会给大家带来更多Golang相关文章,希望我们能一起进步!下面就开始本文的正式内容~

问题内容

我动态获取一个字符串作为输入,并且需要访问某些字段,因此我尝试将其解析为 json,但我的代码无法正常工作。

我需要能够获取某些字段的值,例如 input['school_id'],并且需要将 input['school_details'] 的值转换为 map[string] 字符串。这是我尝试过的:

func main() {
    input := `{"school_capacity":2000,"school_id":"10","school_details":{"classes":"8","subjects":"5","teachers":"15"}}`

    var raw map[string]string

    json.Unmarshal([]byte(input), &raw)

    print(raw["input"])
}

但是,这不起作用。为什么?


解决方案


input := `{"school_capacity":2000,"school_id":"10","school_details":{"classes":"8","subjects":"5","teachers":"15"}}`

    var raw map[string]interface{}

    json.unmarshal([]byte(input), &raw)

    fmt.printf("%v", raw)

您正在将字符串映射解组为字符串。您的数据有一个整数字段、一个字符串字段和一个结构体字段。因此,如果任何数据无法解析,您将得到一个空字符串。此外,没有您尝试访问的“输入”字段。

编组和解组具有固定结构的数据的最佳方法之一是使用结构标记:

type response struct {
    page   int      `json:"page"`
    fruits []string `json:"fruits"`
}

但是您也可以使用映射来清空界面:

var dat map[string]interface{}

示例来源:https://gobyexample.com/json

终于介绍完啦!小伙伴们,这篇关于《JSON解析错误》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布Golang相关知识,快来关注吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>