跳转到主内容
趣航编程网 - 趣学编程,启航技术之路!

在 Go 中解组 JSON 中的 JSON

php小编西瓜将为您介绍在Go语言中解析JSON的方法。在开发过程中,处理JSON数据是一项常见的任务。Go语言提供了强大而简单的方式来解组JSON数据,并将其映射到Go语言的结构体中。通过使用 标准库 中的json包,您可以轻松地将JSON数据解析为Go语言中的具体类型,并且可以根据需要进行进一步的操作和处理。在本文中,我们将会分享一些关于在Go语言中解组JSON的技巧和技术,帮助您更好地理解和应用这一功能。 问题内容 我想将一个 json 对象(其中一个字段包含 json 字符串)解组为一个连贯的对象。我如何在 go 中做到这一点? 示例: 输入:
{ "foo":1, "bar":"{\"a\":\"hello\"}" }
转到类型: go语言参考手册 中文CHM版 Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。本文给大家带来Go参考手册,需要的可以来下载! Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发,后来还加入了Ian Lance Taylor, Russ Cox等人,并最终于2009年11月开源,在2012年早些时候发布了Go 1稳定版本。现在Go的开发已经是完全开放的,并且拥有一个活跃的社区。 Go 语言特色 简洁、快速、安全 并行、有趣、开源 内存管理、v数组安全、编译 下载
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)) }
在操场上查看

相关文章