Javascript 需要从API获取名称、节点名称和阶段值
我试图使用JavaScript从JSON数据中获取名称、节点名称和阶段值。这是我的JavaScriptJavascript 需要从API获取名称、节点名称和阶段值,javascript,jquery,Javascript,Jquery,我试图使用JavaScript从JSON数据中获取名称、节点名称和阶段值。这是我的JavaScript <script> $(document).ready(function () { $.getJSON('http://ec2-3-82-117-70.compute-1.amazonaws.com:8080/api/v0/retrievePodStatus/default', function (data) {
<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>
我只是想知道名字。有人能帮我获取名称、节点名称和阶段值吗?也可以找到下面的JSON
"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"
}
},
谢谢,非常感谢您发布的代码。您只需要
项[0]
,而不是项[1]
。记住数组的第一个元素总是0。除此之外,只需检查打开和关闭括号[]
或{}
即可查看每个嵌套对象/数组的开始和结束位置
代码:
var name = data.items[0].metadata.name
var nodeName = data.items[0].spec.nodeName
var phase = data.items[0].status.phase
片段:
var数据={
“apiVersion”:“v1”,
“项目”:[{
“apiVersion”:“v1”,
“种类”:“豆荚”,
“元数据”:{
“注释”:{
“kubernetes.io/limit-ranger”:“LimitRanger插件集:容器外部dns的cpu请求”
},
“creationTimestamp”:“2019-02-28816:22:49Z”,
“generateName”:“external-dns-5d69b66646-”,
“标签”:{
“应用程序”:“外部dns”,
“pod模板哈希”:“1825622202”
},
“名称”:“external-dns-5d69b66646-pmxmd”,
“名称空间”:“默认值”,
“ownerReferences”:[{
“apiVersion”:“扩展/v1beta1”,
“Blockownerdelement”:没错,
“控制员”:对,
“种类”:“复制集”,
“名称”:“external-dns-5d69b66646”,
“uid”:“170d9260-3b75-11e9-abe2-0ec5819342ce”
}],
“资源版本”:“2984”,
“selfLink”:“/api/v1/namespace/default/pods/external-dns-5d69b66646-pmxmd”,
“uid”:“170e1a0d-3b75-11e9-abe2-0ec5819342ce”
},
“规格”:{
“容器”:[{
“args”:[
“--源=服务”,
“--源=入口”,
“--provider=aws”,
“--registry=txt”,
“--txt所有者id=qpair”
],
“image”:“registry.opensource.zalan.do/teapot/externaldns:v0.4.2”,
“imagePullPolicy”:“如果不存在”,
“名称”:“外部dns”,
“资源”:{
“请求”:{
“cpu”:“100m”
}
},
“terminationMessagePath”:“/dev/终止日志”,
“terminationMessagePolicy”:“文件”,
“卷数”:[{
“mountPath”:“/var/run/secrets/kubernetes.io/serviceaccount”,
“名称”:“default-token-rr546”,
“只读”:真
}]
}],
“dnsPolicy”:“ClusterFirst”,
“节点名称”:“ip-172-20-39-147.ec2.内部”,
“重新启动策略”:“始终”,
“schedulerName”:“默认计划程序”,
“securityContext”:{},
“serviceAccount”:“默认值”,
“serviceAccountName”:“默认值”,
“terminationGracePeriodSeconds”:30,
“容忍”:[{
“效果”:“不执行”,
“键”:“node.kubernetes.io/未准备就绪”,
“操作员”:“存在”,
“容忍秒”:300
},
{
“效果”:“不执行”,
“key”:“node.kubernetes.io/unreachable”,
“操作员”:“存在”,
“容忍秒”:300
}
],
“卷”:[{
“名称”:“default-token-rr546”,
“秘密”:{
“默认模式”:420,
“secretName”:“default-token-rr546”
}
}]
},
“地位”:{
“条件”:[{
“lastProbeTime”:空,
“lastTransitionTime”:“2019-02-28T16:22:49Z”,
“状态”:“正确”,
“类型”:“已初始化”
},
{
“lastProbeTime”:空,
“lastTransitionTime”:“2019-02-28T16:22:58Z”,
“状态”:“正确”,
“类型”:“就绪”
},
{
“lastProbeTime”:空,
“lastTransitionTime”:“2019-02-28T16:22:49Z”,
“状态”:“正确”,
“类型”:“播客计划”
}
],
“集装箱状态”:[{
“集装箱运输”:docker://18b96317cf360d562fb3f849c6716c50a41a67a4dbc126164020531e1e4d84a9",
“image”:“registry.opensource.zalan.do/teapot/externaldns:v0.4.2”,
“imageID”:“docker”-pullable://registry.opensource.zalan.do/teapot/external-dns@sha256:d54b9eb8948b87eb7fcd938990ff2dbc9ca0a42d9c5d36fcaa75c7cf066f7995“,
“lastState”:{},
“名称”:“外部dns”,
“准备好了”:是的,
“重新计数”:0,
“国家”:{
“跑步”:{
“开始时间”:“2019-02-28T16:22:57Z”
}
}
}],
“hostIP”:“172.20.39.147”,
“阶段”:“运行”,
“podIP”:“100.96.7.3”,
“qosClass”:“Burstable”,
“开始时间”:“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(名称)
console.log(节点名)
console.log(阶段)
您好,谢谢您的解决方案。我如何通过循环从这个JSON中获取数组值?不太清楚你在问什么。您正在尝试循环通过哪个阵列?大多数嵌套数组只有一个元素,这是一个巨大的嵌套对象。这对于返回的json对象来说是相当标准的,因此通常不需要循环。如果您想循环执行类似于容差数组(它有两个元素,都是嵌套对象)的操作,您可以对(var i=0;i