如何使用javascript从JSON访问单个对象
How do I access a single object from JSON wih javascript?
我有一个JSON列表,它来自具有多个同级的数据库中的一个表。
"PlayerNumbers":{"PlayerNumber":[
{"Section":"1","Team":"1","Direction":"N","Number":"00280149","Name":" ANSART A","Updated":"False","TimeLog":"","Processed":"False"},
{"Section":"1","Team":"1","Direction":"S","Number":"00280131","Name":"ANSART Y","Updated":"False","TimeLog":"","Processed":"False"},
{"Section":"1","Team":"2","Direction":"N","Number":"01964990","Name":" LAHAYE B","Updated":"False","TimeLog":"","Processed":"False"}]}
假设我需要阅读"Name"键,其中Section=1,Team=2,Direction=N。
编辑:我当然会使用js解析的对象
Javascript中的语法是什么?
我假设您根本不处理JSON,而是处理从JSON解析的对象树。我假设你给出的是对象定义的内容,比如这个JSON:
{
"PlayerNumbers": {
"PlayerNumber": [
{
"Section": "1",
"Team": "1",
"Direction": "N",
"Number": "00280149",
"Name": " ANSART A",
"Updated": "False",
"TimeLog": "",
"Processed": "False"
},
{
"Section": "1",
"Team": "1",
"Direction": "S",
"Number": "00280131",
"Name": "ANSART Y",
"Updated": "False",
"TimeLog": "",
"Processed": "False"
},
{
"Section": "1",
"Team": "2",
"Direction": "N",
"Number": "01964990",
"Name": " LAHAYE B",
"Updated": "False",
"TimeLog": "",
"Processed": "False"
}
]
}
}
因此,在解析了JSON之后,您将得到一个具有PlayerNumbers
属性的对象,该属性指代具有PlayerNumber
属性的对象。
因此,您循环遍历数组,直到找到第一个匹配条目(假设您只想要第一个):
var name;
obj.PlayerNumbers.PlayerNumber.some(function(entry) {
if (entry.Section == "1" && Team == "2" && entry.Direction == "N") {
name = entry.Name;
return true;
}
return false;
});
如果您想要所有匹配:
var names = obj.PlayerNumbers.PlayerNumber.filter(function(entry) {
return (entry.Section == "1" && Team == "2" && entry.Direction == "N");
}).map(function(entry) { return entry.Name; });
以上两种都使用了过时发动机上缺少的Array
的ES5功能。如果您需要支持过时的发动机,以上所有内容都可以"填隙"或"填充聚乙烯",则搜索应找到必要的填隙片/填充聚乙烯。
var playersObject = {
"PlayerNumbers": {
"PlayerNumber": [{
"Section": "1",
"Team": "1",
"Direction": "N",
"Number": "00280149",
"Name": " ANSART A",
"Updated": "False",
"TimeLog": "",
"Processed": "False"
}, {
"Section": "1",
"Team": "1",
"Direction": "S",
"Number": "00280131",
"Name": "ANSART Y",
"Updated": "False",
"TimeLog": "",
"Processed": "False"
}, {
"Section": "1",
"Team": "2",
"Direction": "N",
"Number": "01964990",
"Name": " LAHAYE B",
"Updated": "False",
"TimeLog": "",
"Processed": "False"
}]
}
};
function getParticularPlayer(section, team, direction) {
return playersObject.PlayerNumbers.PlayerNumber.filter(function(player) {
return (player.Section===section && player.Team===team && player.Direction===direction);
});
}
现在,您可以使用
var results = getParticularPlayer("1","1","N");
它将返回一系列匹配的玩家。如果您确定始终只返回一个玩家,则可以使用results[0]
。
相关文章:
- 访问布局信息是否也会导致浏览器重排
- Javascript,访问一个主要对象模块模式中的每个对象
- 如何使用javascript从JSON访问单个对象
- 访问单个 Json 对象中的元素
- 使用 javascript 访问单个选项的多个值
- 从 Google Fusion Tables on Click 事件中访问单个单元格值
- 将参数转换为数组,但无法访问单个索引
- 从 NG 绑定结果访问单个对象
- 让两个引导选项卡在单个页面上工作,并在提交时访问活动选项卡
- 如何在html/javascript中访问单个图像上的单独点/部分
- 我该如何使用括号中的单个变量来访问深层值呢
- Javascript:我如何访问对象数组中的单个对象,给定一个键'值's,而不使用for循环?这可能吗?
- 不能用一个主变量访问单个变量[jS]
- Jquery -无法访问网页表单中列表/选择框中的单个元素
- 是否可以从外部url访问内部jQuery #链接(直接访问单个网站部分)?
- 允许组件及其子组件在service中访问ngModel的单个实例
- 访问集合中的单个项
- Angularjs:无法访问$routeParams中的单个元素,但可以作为一个整体访问它
- jQuery:在动态创建的表中访问类的单个实例
- 使用 jQuery each() 访问单个数组元素