您好,目前我正在尝试获取特定值,但不完全确定如何。
以下是我正在使用的JSON数据的一部分。数据设置为等于“条目”
var entries = "credits": {
"crew": [
{
"id": 7469,
"name": "JimUhls",
"department": "Writing",
"job": "Author",
"profile_path": null
},
{
"id": 7474,
"name": "RossGraysonBell",
"department": "Production",
"job": "Producer",
"profile_path": null
},
{
"id": 7475,
"name": "CeánChaffin",
"department": "Production",
"job": "Producer",
"profile_path": null
},
{
"id": 1254,
"name": "ArtLinson",
"department": "Production",
"job": "Producer",
"profile_path": "/dEtVivCXxQBtIzmJcUNupT1AB4H.jpg"
},
{
"id": 7477,
"name": "JohnKing",
"department": "Sound",
"job": "OriginalMusicComposer",
"profile_path": null
},
{
"id": 7478,
"name": "MichaelSimpson",
"department": "Sound",
"job": "OriginalMusicComposer",
"profile_path": null
},
{
"id": 7479,
"name": "JeffCronenweth",
"department": "Camera",
"job": "DirectorofPhotography",
"profile_path": null
},
{
"id": 7480,
"name": "JamesHaygood",
"department": "Editing",
"job": "Editor",
"profile_path": null
},
{
"id": 7481,
"name": "LarayMayfield",
"department": "Production",
"job": "Casting",
"profile_path": null
},
{
"id": 1303,
"name": "AlexMcDowell",
"department": "Art",
"job": "ProductionDesign",
"profile_path": null
},
{
"id": 7763,
"name": "RenKlyce",
"department": "Sound",
"job": "SoundEditor",
"profile_path": null
},
{
"id": 7764,
"name": "RichardHymns",
"department": "Sound",
"job": "SoundEditor",
"profile_path": null
},
{
"id": 7467,
"name": "DavidFincher",
"department": "Directing",
"job": "Director",
"profile_path": "/dcBHejOsKvzVZVozWJAPzYthb8X.jpg"
},
{
"id": 7468,
"name": "ChuckPalahniuk",
"department": "Writing",
"job": "Novel",
"profile_path": "/8nOJDJ6SqwV2h7PjdLBDTvIxXvx.jpg"
}
]
}
}
然后我使用以下方法解析数据:
crew_member = 0,
crew_members = [];
for (crew_member = 0; crew_member < entries.credits.crew.length; crew_member++) {
crew_members.push(entries.credits.crew[crew_member].job + ': ' + entries.credits.crew[crew_member].name);
}
document.getElementById('Crew').innerHTML = crew_members.join(',');
一切都在我的身上。我遇到的问题是如何专门找到导演和导演。
答案 0 :(得分:2)
这是一个简单的if
声明:
for (crew_member = 0; crew_member < entries.credits.crew.length; crew_member++) {
if (entries.credits.crew[crew_member].job == "Director") {
crew_members.push(entries.credits.crew[crew_member].job + ': ' + entries.credits.crew[crew_member].name);
}
}
答案 1 :(得分:1)
你可以过滤这些项目,仍然像这样返回和数组:
entries.credits.crew.filter(function(member){ return member.job === "DirectorofPhotography" } );
你也可以添加:
entries.credits.crew.filter(function(member){ return member.job === "DirectorofPhotography" } ).map(function(member){
return member.job+ ': ' + member.name;}).join(',');
更新1 这是基于此Object,因为提供的似乎没有正确的格式:
var entries = { "credits" : {"crew":[
{
"id": 7469,
"name": "JimUhls",
"department": "Writing",
"job": "Author",
"profile_path": null
},
{
"id": 7474,
"name": "RossGraysonBell",
"department": "Production",
"job": "Producer",
"profile_path": null
},
{
"id": 7475,
"name": "CeánChaffin",
"department": "Production",
"job": "Producer",
"profile_path": null
},
{
"id": 1254,
"name": "ArtLinson",
"department": "Production",
"job": "Producer",
"profile_path": "/dEtVivCXxQBtIzmJcUNupT1AB4H.jpg"
},
{
"id": 7477,
"name": "JohnKing",
"department": "Sound",
"job": "OriginalMusicComposer",
"profile_path": null
},
{
"id": 7478,
"name": "MichaelSimpson",
"department": "Sound",
"job": "OriginalMusicComposer",
"profile_path": null
},
{
"id": 7479,
"name": "JeffCronenweth",
"department": "Camera",
"job": "DirectorofPhotography",
"profile_path": null
},
{
"id": 7480,
"name": "JamesHaygood",
"department": "Editing",
"job": "Editor",
"profile_path": null
},
{
"id": 7481,
"name": "LarayMayfield",
"department": "Production",
"job": "Casting",
"profile_path": null
},
{
"id": 1303,
"name": "AlexMcDowell",
"department": "Art",
"job": "ProductionDesign",
"profile_path": null
},
{
"id": 7763,
"name": "RenKlyce",
"department": "Sound",
"job": "SoundEditor",
"profile_path": null
},
{
"id": 7764,
"name": "RichardHymns",
"department": "Sound",
"job": "SoundEditor",
"profile_path": null
},
{
"id": 7467,
"name": "DavidFincher",
"department": "Directing",
"job": "Director",
"profile_path": "/dcBHejOsKvzVZVozWJAPzYthb8X.jpg"
},
{
"id": 7468,
"name": "ChuckPalahniuk",
"department": "Writing",
"job": "Novel",
"profile_path": "/8nOJDJ6SqwV2h7PjdLBDTvIxXvx.jpg"
}
]
} };
答案 2 :(得分:1)
尝试jquery
jQuery.grep(entries.credits.crew,function(n,i){ return (n.job == "Director") });
这应该会让你返回一系列有导演职位的船员元素。
感谢。
答案 3 :(得分:1)
entries.credits.crew.filter(function(a){ return a.job == 'Director'; });
您将获得一个单独的对象数组,其中作业是“Director”