我是一个 .NET 开发人员。对 Go 语言非常新手。
在 .NET 中我们有扩展方法。Go 中有类似的东西吗?
在 .NET 中我会这样做 bsonTrans["trans.ticket"]
其中 bsonTrans => bson 文档
"trans.ticket" => key in json
trans is outer level and
ticket is inner level
我正在使用本地的mongodb驱动程序。我添加了我的扩展函数来执行这些操作。
同样地,我在.NET上做到了第n个级别。
我想在Go中应用相同的逻辑。
示例
b := []byte(trans)
var config map[string]interface{}
err := json.Unmarshal(b, &config)
fmt.Println(config["data"].(map[string] interface{})["issued"])
例如,在该示例中,我能像这样做吗:config["data.issued"],它应该返回相应的值吗?请帮助我弄清楚这个问题...
实际的JSON:
(实际的JSON太大了,但是我提供了一个字段较少的示例。){
"_id" : 2001,
"address" : {
"line1" : "",
"line2" : "",
"line3" : ""
},
"tickets" : [
{
"seq" : 2,
"add" : [
{
"seq" : "",
"amnt" : 50
},
{
"seq" : "",
"amnt" : 50
{
"seq" : "",
"amnt" : 50
}
}
}
]
}
不使用结构体的原因是我的JSON有太多嵌套结构,并且我有超过10个具有不同结构的模式。
所以我没有使用结构体。
我承认我不确定省略结构体是否是最好的方式。