我一直在尝试使用JSON数据和API创建我的第一个合适的站点;我使用的是Destiny 2的API--但现在遇到了一些问题。
例如,我不确定如何遍历每个Response.characters.data.(?).membershipId
的membershipId
。(?)
是动态的,这取决于最初的API请求,但我不确定如何遍历它,因为它不在数组中。
{
"Response": {
"characters": {
"data": {
"2305843009301086354": {
"membershipId": "4611686018467309748",
"membershipType": 4,
"characterId": "2305843009301086354",
"dateLastPlayed": "2018-08-27T19:22:17Z",
"minutesPlayedThisSession": "166",
"minutesPlayedTotal": "1251",
"light": 300
},
"2305843009299512096": {
"membershipId": "4611686018467309748",
"membershipType": 4,
"characterId": "2305843009299512096",
"dateLastPlayed": "2018-08-28T22:27:07Z",
"minutesPlayedThisSession": "58",
"minutesPlayedTotal": "4115",
"light": 359
},
"2305843009317224837": {
"membershipId": "4611686018467309748",
"membershipType": 4,
"characterId": "2305843009317224837",
"dateLastPlayed": "2017-12-08T19:34:05Z",
"minutesPlayedThisSession": "12",
"minutesPlayedTotal": "12",
"light": 10
}
},
"privacy": 1
},
"characterUninstancedItemComponents": {},
"itemComponents": {}
},
"ErrorCode": 1,
"ThrottleSeconds": 0,
"ErrorStatus": "Success",
"Message": "Ok",
"MessageData": {}
}
我该如何确定目标呢?我所期望的是类似于我处理数组的方法,类似于:
var characterIds = characterData.Response.characters.data;
for(var i = 0; i < characterIds.length; i++){
var characterId = characterIds[i];
var characterMembershipId = characterId.membershipId;
console.log(characterMembershipId);
}
任何帮助都将在这里被感谢-抱歉,如果我的解释有点乏味,我的术语不是很好:试着抓住并通过坚持学习东西!
编辑:感谢你们到目前为止的帮助,我想我可能在解释我所追求的东西方面做得不好。
我试图从For循环中获得的部分是Response.characters.data
的结果,即随机数(当前为"2305843009301086354"
、"2305843009299512096"
和"2305843009317224837"
) -它根据API请求的不同而变化,因此:
{
"Response": {
"characters": {
"data": {
"2305843009301086354": {
"characterId": "2305843009301086354",
},
"2305843009299512096": {
"characterId": "2305843009299512096",
},
"2305843009317224837": {
"characterId": "2305843009317224837",
}
然后,我希望能够console.log
这些.data
结果的每个循环的characterId
。
抱歉,如果这更不合理,但我真的很感谢你到目前为止的帮助!
第二次编辑:很抱歉,我太胖了-让它工作了,真的很感谢你的帮助!
发布于 2018-08-29 09:00:48
遍历data
属性的Object.values
以获取每个成员对象,然后提取每个成员的membershipId
:
const input={"Response":{"characters":{"data":{"2305843009301086354":{"membershipId":"4611686018467309748","membershipType":4,"characterId":"2305843009301086354","dateLastPlayed":"2018-08-27T19:22:17Z","minutesPlayedThisSession":"166","minutesPlayedTotal":"1251","light":300},"2305843009299512096":{"membershipId":"4611686018467309748","membershipType":4,"characterId":"2305843009299512096","dateLastPlayed":"2018-08-28T22:27:07Z","minutesPlayedThisSession":"58","minutesPlayedTotal":"4115","light":359},"2305843009317224837":{"membershipId":"4611686018467309748","membershipType":4,"characterId":"2305843009317224837","dateLastPlayed":"2017-12-08T19:34:05Z","minutesPlayedThisSession":"12","minutesPlayedTotal":"12","light":10}},"privacy":1},"characterUninstancedItemComponents":{},"itemComponents":{}},"ErrorCode":1,"ThrottleSeconds":0,"ErrorStatus":"Success","Message":"Ok","MessageData":{}}
Object.values(input.Response.characters.data)
.forEach(({ membershipId }) => {
console.log(membershipId);
});
发布于 2018-08-29 10:11:57
在这里尝试一下,使用jquery "for“遍历字符,最后打印它们的id
var response = {
"Response": {
"characters": {
"data": {
"2305843009301086354": {
"membershipId": "4611686018467309748",
"membershipType": 4,
"characterId": "2305843009301086354",
"dateLastPlayed": "2018-08-27T19:22:17Z",
"minutesPlayedThisSession": "166",
"minutesPlayedTotal": "1251",
"light": 300
},
"2305843009299512096": {
"membershipId": "4611686018467309748",
"membershipType": 4,
"characterId": "2305843009299512096",
"dateLastPlayed": "2018-08-28T22:27:07Z",
"minutesPlayedThisSession": "58",
"minutesPlayedTotal": "4115",
"light": 359
},
"2305843009317224837": {
"membershipId": "4611686018467309748",
"membershipType": 4,
"characterId": "2305843009317224837",
"dateLastPlayed": "2017-12-08T19:34:05Z",
"minutesPlayedThisSession": "12",
"minutesPlayedTotal": "12",
"light": 10
}
},
"privacy": 1
},
"characterUninstancedItemComponents": {},
"itemComponents": {}
},
"ErrorCode": 1,
"ThrottleSeconds": 0,
"ErrorStatus": "Success",
"Message": "Ok",
"MessageData": {}
};
var data = response;
$characters = data.Response.characters.data;
for($character in $characters)
{
console.log($characters[$character].membershipId);
}
https://stackoverflow.com/questions/52068076
复制相似问题