登录
首页 >  Golang >  Go问答

将 json 转换为 golang Web 应用程序的路线图

来源:stackoverflow

时间:2024-02-12 20:42:24 472浏览 收藏

本篇文章主要是结合我之前面试的各种经历和实战开发中遇到的问题解决经验整理的,希望这篇《将 json 转换为 golang Web 应用程序的路线图》对你有很大帮助!欢迎收藏,分享给更多的需要的朋友学习~

问题内容

我正在使用 golang 编写一个 Web 应用程序。这个应用程序尝试使用gitea的api。我的任务是获取 json 并将其转换为地图。首先,我获取 response.body 并使用 ioutil.readAll() 将其转换为 []byte,然后使用 Unmarshal() 将其转换为映射。我可以得到 []byte 格式的response.body。但是,地图中没有元素。有谁知道原因吗?

你可以看到地图是空的,但我可以得到[]字节格式的response.Body。


正确答案


您的图片显示了responsedata字节的转储,该数组中的第一个整数值是91。在 ascii 中,这是一个左括号 [,或者更确切地说是数组的开头。第二个字节 123 是左大括号,或 {

解码前几个字节:

[{"id":3,"url":"http://...

因此,您的响应正文不是 json 对象,而更可能是包含 json 对象的 json 数组。

这样做:

var items []interface{}
err := json.unmarshal(responsedata, &items)

如果一切顺利,您的 items 数组将被 map[string]interface{} 实例数组填充。假设数组中的所有项目都是 json 对象。

如果您确定它始终是一个对象数组,则可以将 items 声明为此(地图数组)。

var items []map[string]interface{}

到这里,我们也就讲完了《将 json 转换为 golang Web 应用程序的路线图》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!

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