英文:
Whats the best way to retrieve value of array element from a JSON string
问题
尝试在Go程序中从以下JSON中检索值"default-token-k99mq"...
const input = `{
"kind": "ServiceAccount",
"apiVersion": "v1",
"metadata": {
"name": "default",
"namespace": "mynamespace",
"selfLink": "/api/v1/namespaces/mynamespace/serviceaccounts/default",
"uid": "483d1043-4d68-11e7-be08-3a3f3b149220",
"resourceVersion": "425039",
"creationTimestamp": "2017-06-09T23:06:34Z"
},
"secrets": [
{
"name": "default-token-k99mq"
}
]
}`
需要从`secrets`数组中获取名称。
英文:
Trying to retrieve value "default-token-k99mq" from below JSON in go program ...
const input = `{
"kind": "ServiceAccount",
"apiVersion": "v1",
"metadata": {
"name": "default",
"namespace": "mynamespace",
"selfLink": "/api/v1/namespaces/mynamespace/serviceaccounts/default",
"uid": "483d1043-4d68-11e7-be08-3a3f3b149220",
"resourceVersion": "425039",
"creationTimestamp": "2017-06-09T23:06:34Z"
},
"secrets": [
{
"name": "default-token-k99mq"
}
]
}`
Need to get names from secrets
array
答案1
得分: 1
你可以使用以下代码进行操作:
package main
import (
"fmt"
"encoding/json"
)
func main() {
const input = `{
"kind": "ServiceAccount",
"apiVersion": "v1",
"metadata": {
"name": "default",
"namespace": "mynamespace",
"selfLink": "/api/v1/namespaces/mynamespace/serviceaccounts/default",
"uid": "483d1043-4d68-11e7-be08-3a3f3b149220",
"resourceVersion": "425039",
"creationTimestamp": "2017-06-09T23:06:34Z"
},
"secrets": [
{
"name": "default-token-k99mq"
}
]
}`
type NameStruct struct {
Name string `json:"name"`
}
type Secret struct {
Secrets []NameStruct `json:"secrets"`
}
secret := Secret{}
json.Unmarshal([]byte(input), &secret)
fmt.Println(secret.Secrets[0].Name)
}
这段代码可以将JSON字符串解析为结构体,并打印出secrets
数组中的第一个元素的name
字段值。
英文:
You can do this https://play.golang.org/p/27eKFmBCHY
package main
import (
"fmt"
"encoding/json"
)
func main() {
const input = `{
"kind": "ServiceAccount",
"apiVersion": "v1",
"metadata": {
"name": "default",
"namespace": "mynamespace",
"selfLink": "/api/v1/namespaces/mynamespace/serviceaccounts/default",
"uid": "483d1043-4d68-11e7-be08-3a3f3b149220",
"resourceVersion": "425039",
"creationTimestamp": "2017-06-09T23:06:34Z"
},
"secrets": [
{
"name": "default-token-k99mq"
}
]
}`
type NameStruct struct {
Name string `json:"name"`
}
type Secret struct {
Secrets []NameStruct `json:"secrets"`
}
secret := Secret{}
json.Unmarshal([]byte(input), &secret)
fmt.Println(secret.Secrets[0].Name)
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论