繁体   English   中英

如何从JSON对象中从像这样的“名字”的键中获取值?

[英]How to get Value From Key Like this “First-Name” from JSON Object?

我有这样的JSON对象,我想获取键“名字”和“姓氏”的值

data={ 
{ 
"objects":[ 
{ 
"ID":"1",
"Country":"Sudan",
"First-Name":"Noemi",
"Last-Name":"Harris"
},
{ 
"ID":"2",
"Country":"Honduras",
"First-Name":"Carol",
"Last-Name":"Mould"
},
{ 
"ID":"3",
"Country":"Togo",
"First-Name":"Dakota",
"Last-Name":"Tindall"
},
{ 
"ID":"4",
"Country":"Lebanon",
"First-Name":"Penelope",
"Last-Name":"Donovan"
},
{ 
"ID":"5",
"Country":"Bahrain",
"First-Name":"Rufus",
"Last-Name":"Baker"
}
]}

我已经尝试过这个JQuery,但无法获得价值

$each(data.objects,function(index,value){
console.log(value.First-Name);

})请帮我解决这个问题。

jQuery仅将.First-Name检测为.First即它不接受name-key形式的-key 所以您要做的是['First-Name']

 data={ "objects":[ { "ID":"1", "Country":"Sudan", "Frist-Name":"Noemi", "Last-Name":"Harris" }, { "ID":"2", "Country":"Honduras", "Frist-Name":"Carol", "Last-Name":"Mould" }, { "ID":"3", "Country":"Togo", "Frist-Name":"Dakota", "Last-Name":"Tindall" }, { "ID":"4", "Country":"Lebanon", "Frist-Name":"Penelope", "Last-Name":"Donovan" }, { "ID":"5", "Country":"Bahrain", "Frist-Name":"Rufus", "Last-Name":"Baker" } ]} $.each(data.objects,function(index,value){ console.log("First name: "+value['Frist-Name']); console.log("Last name: "+value['Last-Name']); }); 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> 

您需要使用方括号表示法,如下所示:

 const data = { "objects": [{ "ID": "1", "Country": "Sudan", "First-Name": "Noemi", "Last-Name": "Harris" }, { "ID": "2", "Country": "Honduras", "First-Name": "Carol", "Last-Name": "Mould" }, { "ID": "3", "Country": "Togo", "First-Name": "Dakota", "Last-Name": "Tindall" }, { "ID": "4", "Country": "Lebanon", "First-Name": "Penelope", "Last-Name": "Donovan" }, { "ID": "5", "Country": "Bahrain", "First-Name": "Rufus", "Last-Name": "Baker" } ] } $.each(data.objects, function(index, value) { console.log(value["First-Name"]); console.log(value["Last-Name"]); }) 
 <script src="https://code.jquery.com/jquery-3.3.1.js"></script> 

您也可以使用纯JavaScript执行此操作:

 const data = { "objects": [{ "ID": "1", "Country": "Sudan", "First-Name": "Noemi", "Last-Name": "Harris" }, { "ID": "2", "Country": "Honduras", "First-Name": "Carol", "Last-Name": "Mould" }, { "ID": "3", "Country": "Togo", "First-Name": "Dakota", "Last-Name": "Tindall" }, { "ID": "4", "Country": "Lebanon", "First-Name": "Penelope", "Last-Name": "Donovan" }, { "ID": "5", "Country": "Bahrain", "First-Name": "Rufus", "Last-Name": "Baker" } ] } data.objects.forEach(function(value) { console.log(value["First-Name"]); console.log(value["Last-Name"]); }); 

请尝试此操作,foreach部分可能不正确。

var j_data = JSON.parse(data)
foreach(var item in j_data.objects)
{
console.log(item.First_Name);
}

首先,您的对象在顶部有一个额外的{。 下面是答案。

const data={ 
//{
"objects":[ 
{ 
"ID":"1",
"Country":"Sudan",
"First-Name":"Noemi",
"Last-Name":"Harris"
},
{ 
"ID":"2",
"Country":"Honduras",
"First-Name":"Carol",
"Last-Name":"Mould"
}
]};

for(let char in data.objects){
    console.log(data.objects[char]['First-Name']);
    console.log(data.objects[char]['Last-Name']);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM