首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >需要从API获取Name、Node Name和Phase值

需要从API获取Name、Node Name和Phase值
EN

Stack Overflow用户
提问于 2019-03-08 05:11:53
回答 1查看 40关注 0票数 2

我正在尝试使用JavaScript从JSON数据中获取Name、Name和Phase值。这是我的JavaScript

代码语言:javascript
复制
<script>
    $(document).ready(function () {
            $.getJSON('http://ec2-3-82-117-70.compute-1.amazonaws.com:8080/api/v0/retrievePodStatus/default',
            function (data) {
              console.log(data)

             document.body.append("Name: " + data.items[1].metadata.name);
                // document.body.append(data.items[1].metadata.name);
                // document.body.append(data.items[0].spec.nodeName);
            });
    });


</script>

我只是把名字放在这里。有没有人可以教我如何获取Name,Node Name和Phase值?也可以找到下面的JSON。

代码语言:javascript
复制
"apiVersion": "v1",
"items": [
    {
        "apiVersion": "v1",
        "kind": "Pod",
        "metadata": {
            "annotations": {
                "kubernetes.io/limit-ranger": "LimitRanger plugin set: cpu request for container external-dns"
            },
            "creationTimestamp": "2019-02-28T16:22:49Z",
            "generateName": "external-dns-5d69b66646-",
            "labels": {
                "app": "external-dns",
                "pod-template-hash": "1825622202"
            },
            "name": "external-dns-5d69b66646-pmxmd",
            "namespace": "default",
            "ownerReferences": [
                {
                    "apiVersion": "extensions/v1beta1",
                    "blockOwnerDeletion": true,
                    "controller": true,
                    "kind": "ReplicaSet",
                    "name": "external-dns-5d69b66646",
                    "uid": "170d9260-3b75-11e9-abe2-0ec5819342ce"
                }
            ],
            "resourceVersion": "2984",
            "selfLink": "/api/v1/namespaces/default/pods/external-dns-5d69b66646-pmxmd",
            "uid": "170e1a0d-3b75-11e9-abe2-0ec5819342ce"
        },
        "spec": {
            "containers": [
                {
                    "args": [
                        "--source=service",
                        "--source=ingress",
                        "--provider=aws",
                        "--registry=txt",
                        "--txt-owner-id=qpair"
                    ],
                    "image": "registry.opensource.zalan.do/teapot/external-dns:v0.4.2",
                    "imagePullPolicy": "IfNotPresent",
                    "name": "external-dns",
                    "resources": {
                        "requests": {
                            "cpu": "100m"
                        }
                    },
                    "terminationMessagePath": "/dev/termination-log",
                    "terminationMessagePolicy": "File",
                    "volumeMounts": [
                        {
                            "mountPath": "/var/run/secrets/kubernetes.io/serviceaccount",
                            "name": "default-token-rr546",
                            "readOnly": true
                        }
                    ]
                }
            ],
            "dnsPolicy": "ClusterFirst",
            "nodeName": "ip-172-20-39-147.ec2.internal",
            "restartPolicy": "Always",
            "schedulerName": "default-scheduler",
            "securityContext": {},
            "serviceAccount": "default",
            "serviceAccountName": "default",
            "terminationGracePeriodSeconds": 30,
            "tolerations": [
                {
                    "effect": "NoExecute",
                    "key": "node.kubernetes.io/not-ready",
                    "operator": "Exists",
                    "tolerationSeconds": 300
                },
                {
                    "effect": "NoExecute",
                    "key": "node.kubernetes.io/unreachable",
                    "operator": "Exists",
                    "tolerationSeconds": 300
                }
            ],
            "volumes": [
                {
                    "name": "default-token-rr546",
                    "secret": {
                        "defaultMode": 420,
                        "secretName": "default-token-rr546"
                    }
                }
            ]
        },
        "status": {
            "conditions": [
                {
                    "lastProbeTime": null,
                    "lastTransitionTime": "2019-02-28T16:22:49Z",
                    "status": "True",
                    "type": "Initialized"
                },
                {
                    "lastProbeTime": null,
                    "lastTransitionTime": "2019-02-28T16:22:58Z",
                    "status": "True",
                    "type": "Ready"
                },
                {
                    "lastProbeTime": null,
                    "lastTransitionTime": "2019-02-28T16:22:49Z",
                    "status": "True",
                    "type": "PodScheduled"
                }
            ],
            "containerStatuses": [
                {
                    "containerID": "docker://18b96317cf360d562fb3f849c6716c50a41a67a4dbc126164020531e1e4d84a9",
                    "image": "registry.opensource.zalan.do/teapot/external-dns:v0.4.2",
                    "imageID": "docker-pullable://registry.opensource.zalan.do/teapot/external-dns@sha256:d54b9eb8948b87eb7fcd938990ff2dbc9ca0a42d9c5d36fcaa75c7cf066f7995",
                    "lastState": {},
                    "name": "external-dns",
                    "ready": true,
                    "restartCount": 0,
                    "state": {
                        "running": {
                            "startedAt": "2019-02-28T16:22:57Z"
                        }
                    }
                }
            ],
            "hostIP": "172.20.39.147",
            "phase": "Running",
            "podIP": "100.96.7.3",
            "qosClass": "Burstable",
            "startTime": "2019-02-28T16:22:49Z"
        }
    },

我只是把名字放在这里。有没有人可以教我如何获取Name,Node Name和Phase值?也可以找到下面的JSON。

谢谢,非常感谢

EN

回答 1

Stack Overflow用户

发布于 2019-03-08 05:31:22

你已经接近你发布的代码了。您只需要items[0]而不是items[1]。记住,数组的第一个元素总是0。除此之外,只需检查开始和结束括号[]{},就可以查看每个嵌套对象/数组的开始和结束位置。

代码:

代码语言:javascript
复制
var name = data.items[0].metadata.name
var nodeName = data.items[0].spec.nodeName
var phase = data.items[0].status.phase

代码片段:

代码语言:javascript
复制
var data = {
  "apiVersion": "v1",
  "items": [{
    "apiVersion": "v1",
    "kind": "Pod",
    "metadata": {
      "annotations": {
        "kubernetes.io/limit-ranger": "LimitRanger plugin set: cpu request for container external-dns"
      },
      "creationTimestamp": "2019-02-28T16:22:49Z",
      "generateName": "external-dns-5d69b66646-",
      "labels": {
        "app": "external-dns",
        "pod-template-hash": "1825622202"
      },
      "name": "external-dns-5d69b66646-pmxmd",
      "namespace": "default",
      "ownerReferences": [{
        "apiVersion": "extensions/v1beta1",
        "blockOwnerDeletion": true,
        "controller": true,
        "kind": "ReplicaSet",
        "name": "external-dns-5d69b66646",
        "uid": "170d9260-3b75-11e9-abe2-0ec5819342ce"
      }],
      "resourceVersion": "2984",
      "selfLink": "/api/v1/namespaces/default/pods/external-dns-5d69b66646-pmxmd",
      "uid": "170e1a0d-3b75-11e9-abe2-0ec5819342ce"
    },
    "spec": {
      "containers": [{
        "args": [
          "--source=service",
          "--source=ingress",
          "--provider=aws",
          "--registry=txt",
          "--txt-owner-id=qpair"
        ],
        "image": "registry.opensource.zalan.do/teapot/external-dns:v0.4.2",
        "imagePullPolicy": "IfNotPresent",
        "name": "external-dns",
        "resources": {
          "requests": {
            "cpu": "100m"
          }
        },
        "terminationMessagePath": "/dev/termination-log",
        "terminationMessagePolicy": "File",
        "volumeMounts": [{
          "mountPath": "/var/run/secrets/kubernetes.io/serviceaccount",
          "name": "default-token-rr546",
          "readOnly": true
        }]
      }],
      "dnsPolicy": "ClusterFirst",
      "nodeName": "ip-172-20-39-147.ec2.internal",
      "restartPolicy": "Always",
      "schedulerName": "default-scheduler",
      "securityContext": {},
      "serviceAccount": "default",
      "serviceAccountName": "default",
      "terminationGracePeriodSeconds": 30,
      "tolerations": [{
          "effect": "NoExecute",
          "key": "node.kubernetes.io/not-ready",
          "operator": "Exists",
          "tolerationSeconds": 300
        },
        {
          "effect": "NoExecute",
          "key": "node.kubernetes.io/unreachable",
          "operator": "Exists",
          "tolerationSeconds": 300
        }
      ],
      "volumes": [{
        "name": "default-token-rr546",
        "secret": {
          "defaultMode": 420,
          "secretName": "default-token-rr546"
        }
      }]
    },
    "status": {
      "conditions": [{
          "lastProbeTime": null,
          "lastTransitionTime": "2019-02-28T16:22:49Z",
          "status": "True",
          "type": "Initialized"
        },
        {
          "lastProbeTime": null,
          "lastTransitionTime": "2019-02-28T16:22:58Z",
          "status": "True",
          "type": "Ready"
        },
        {
          "lastProbeTime": null,
          "lastTransitionTime": "2019-02-28T16:22:49Z",
          "status": "True",
          "type": "PodScheduled"
        }
      ],
      "containerStatuses": [{
        "containerID": "docker://18b96317cf360d562fb3f849c6716c50a41a67a4dbc126164020531e1e4d84a9",
        "image": "registry.opensource.zalan.do/teapot/external-dns:v0.4.2",
        "imageID": "docker-pullable://registry.opensource.zalan.do/teapot/external-dns@sha256:d54b9eb8948b87eb7fcd938990ff2dbc9ca0a42d9c5d36fcaa75c7cf066f7995",
        "lastState": {},
        "name": "external-dns",
        "ready": true,
        "restartCount": 0,
        "state": {
          "running": {
            "startedAt": "2019-02-28T16:22:57Z"
          }
        }
      }],
      "hostIP": "172.20.39.147",
      "phase": "Running",
      "podIP": "100.96.7.3",
      "qosClass": "Burstable",
      "startTime": "2019-02-28T16:22:49Z"
    }
  }],

}

var name = data.items[0].metadata.name
var nodeName = data.items[0].spec.nodeName
var phase = data.items[0].status.phase
console.log(name)
console.log(nodeName)
console.log(phase)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55052866

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档