[英]How to get Value From Key Like this “First-Name” from JSON Object?
I have JSON Object like this and I want to get the value of Key "First-Name" and "Last-Name" 我有这样的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"
}
]}
I have tried this JQuery but couldn't get value 我已经尝试过这个JQuery,但无法获得价值
$each(data.objects,function(index,value){
console.log(value.First-Name);
}) Please help me for this problem. })请帮我解决这个问题。
jQuery
detects .First-Name
as .First
only ie it doesn't accept -key
of the form name-key
. jQuery
仅将.First-Name
检测为.First
即它不接受name-key
形式的-key
。 So what you have to do is ['First-Name']
所以您要做的是
['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>
You need to use square bracket notation like so: 您需要使用方括号表示法,如下所示:
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>
You can also do this with pure JavaScript: 您也可以使用纯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"]); });
please try this, foreach part maybe not correct. 请尝试此操作,foreach部分可能不正确。
var j_data = JSON.parse(data)
foreach(var item in j_data.objects)
{
console.log(item.First_Name);
}
For a start, your object had an extra { at the top. 首先,您的对象在顶部有一个额外的{。 below is the answer.
下面是答案。
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.