什么是从JSON字符串中检索数组元素值的最佳方法

时间:2017-06-17 16:34:35

标签: json go

尝试检索值" default-token-k99mq"来自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"
    }
  ]
}`

需要从secrets数组

获取名称

1 个答案:

答案 0 :(得分:1)

您可以执行此操作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)
}