我尝试使用Javascript对象处理某些数据。这是对象本身(从JSON解析),定义为 accounts :
{
startIndex: 0,
pageSize: 20,
pageCount: 1,
totalCount: 1,
items: [
{
id: 123456,
emailAddress: 'test@test.com',
userName: 'test@test.com',
firstName: 'John',
lastName: 'Hancock',
customerSet: 'default',
commerceSummary: [
Object
],
contacts: [
Object
],
userId: '92834439c29389fj292',
notes: [
],
attributes: [
Object
],
segments: [
Object
],
taxExempt: false,
externalId: '2100010368',
isAnonymous: false,
auditInfo: [
Object
],
isLocked: false,
isActive: true,
hasExternalPassword: false,
customerSinceDate: 2016-06-23T18: 26: 46.000Z
}
]
}
虽然我可以毫无问题地检索accounts.items,但我在从项目本身检索单个值(例如id或emailAddress)时遇到了一些问题。执行accounts.items [id]或accounts.items [emailAddress]不起作用,但我相信它是因为项目可以超过1,所以我应该指定"第一个结果&#34 ;对于该列表中的项目。如果是这种情况,如何检索第一个项数组的emailAddress或id?上述JSON对象的期望结果应为" 123456"如果是id和" test@test.com"如果是电邮提前谢谢。
答案 0 :(得分:1)
你是对的,首先你需要引用数组的第一个元素。然后你可以查询它的属性。
例如,要获取您要编写的第一个项目的ID和电子邮件地址
accounts.items[0].id
accounts.items[0].emailAddress
数组元素从JavaScript中的索引0开始,因此数组的第一个元素的索引为0,第二个元素为1,依此类推。
答案 1 :(得分:1)
Items是一个数组,emailAddress是一个Key,然后你可以使用:
获取值accounts.items[0].emailAddress
答案 2 :(得分:1)
您的items
是一个数组。您必须通过索引(例如items[0]
)从中获取数据。如果您要查找具有其属性的项目,请使用Array.find
方法。
find方法为每个元素执行一次回调函数 出现在数组中,直到找到一个回调返回true的地方 值。如果找到这样的元素,find会立即返回该值 那个元素。否则,find返回undefined。回调是 仅为已分配值的数组的索引调用;它 不会为已删除或从不删除的索引调用 被赋予了价值。
var accounts = {
startIndex: 0,
pageSize: 20,
pageCount: 1,
totalCount: 1,
items: [
{
id: 123456,
emailAddress: 'test@test.com',
userName: 'test@test.com',
firstName: 'John',
lastName: 'Hancock',
customerSet: 'default'
}
]
};
var sampleAccount = accounts.items.find(function (item) {
return item.id == 123456;
});
if (sampleAccount) {
console.log(sampleAccount.emailAddress);
}