【发布时间】:2021-09-02 06:18:19
【问题描述】:
有代码:
type Foo struct {
field string
Value string
}
type Guyy struct {
info Foo
}
func main() {
GuyJson := `{"info":[{"field":"phone","value":"11111-11111"},{"field":"date","value":"05072001"},{"field":"nationality","value":"american"},{"field":"dni","value":"000012345"}]}`
var Guy Guyy
json.Unmarshal([]byte(GuyJson), &Guy)
fmt.Printf("%+v", Guy)
}
编译时我得到
{info:{field: Value:}}
如何获取国籍的字段和值?
【问题讨论】:
-
您是否使用例如连接到 Postgres pq,或者只是解析 psql 输出?如果是后者,为什么?
-
"是否有可能得到 natiolanity 值?" -- 是的,有可能。如果您尝试过但失败,请显示代码,显示您的努力。如果你还没有尝试过,为什么不呢?请注意,它看起来不像“psql 数组”,而是看起来像 PostgreSQL
jsonb类型的值,并且解析 json 通常在 Go 中非常简单,您会发现成千上万的帖子关于这个就在stackoverflow上。我建议您在询问之前先进行一些研究并编写一些代码。 -
抱歉,我更新了问题
-
我已经从行中分配了数据,假装已经执行了查询
-
一旦你把它弄下来,你可以遍历
Info字段,它现在是一个切片,检查每个元素的Field值是否是"nationality",当你得到一个匹配然后你可以取元素的Value值。