在 Go 中解组 JSON 中的 JSON
短信预约 -IT技能 免费直播动态提醒
php小编西瓜将为您介绍在Go语言中解析JSON的方法。在开发过程中,处理JSON数据是一项常见的任务。Go语言提供了强大而简单的方式来解组JSON数据,并将其映射到Go语言的结构体中。通过使用标准库中的json包,您可以轻松地将JSON数据解析为Go语言中的具体类型,并且可以根据需要进行进一步的操作和处理。在本文中,我们将会分享一些关于在Go语言中解组JSON的技巧和技术,帮助您更好地理解和应用这一功能。
问题内容
我想将一个 json 对象(其中一个字段包含 json 字符串)解组为一个连贯的对象。我如何在 go 中做到这一点?
示例:
输入:
{
"foo":1,
"bar":"{\\"a\\":\\"hello\\"}"
}
转到类型:
type Child struct {
A string `json:"a"`
}
type Main struct {
Foo int `json:"foo"`
Bar Child `json:"bar"`
}
我想我需要在其中一种类型上实现自定义 unmarshaljson
实现,但它让我绞尽脑汁来弄清楚是哪个类型以及如何实现。
解决方法
我猜您想将其视为 json 字符串只是周围 json 对象的一部分?如果是这样,那么是的,正如您所建议的, child
上的自定义 unmarshaljson
方法应该可以完成此操作。
func (c *Child) UnmarshalJSON(p []byte) error {
var jsonString string
if err := json.Unmarshal(p, &jsonString); err != nil {
return err // Means the string was invalid
}
type C Child // A new type that doesn't have UnmarshalJSON method
return json.Unmarshal([]byte(jsonString), (*C)(c))
}
在操场上查看
以上就是在 Go 中解组 JSON 中的 JSON的详细内容,更多请关注编程网其它相关文章!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341