[英]How to multiple sort a map[string]interface{} type in go lang?
[英]How to do deep sets and gets in Go's map[string]interface{}?
如果我有一些任意的JSON,我该如何使用切片键和/或切片索引进行深度设置并获取嵌套属性?
例如,在以下JSON API示例摘录中:
{
"data": [{
"type": "posts",
"id": "1",
"title": "JSON API paints my bikeshed!",
"links": {
"self": "http://example.com/posts/1",
"author": {
"self": "http://example.com/posts/1/links/author",
"related": "http://example.com/posts/1/author",
"linkage": { "type": "people", "id": "9" }
}
}
}]
}
我想使用类似下面的命令来获取位于数据data.0.links.author.linkage.id
的字符串"9"
:
[]interface{}{"data",0,"links","author","linkage","id"}
我知道执行此操作的理想方法是创建嵌套结构,该结构映射到我为生产代码执行的JSON对象,但是有时我需要进行一些快速测试,这在Go语言中也很好。
您有提供类似方法的stretchr/objx
。
使用示例:
document, _ := objx.FromJSON(json)
document.Get("path.to.field[0].you.want").Str()
但是,除非您真的真的完全不知道JSON输入的结构,否则这不是进入golang的首选方式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.