javascript - JSON 数据存在 Javascript 问题(Destiny 2 API)
问题描述
我一直在尝试使用 JSON 数据和 API 来围绕我的第一个合适的站点。我正在使用 Destiny 2 的 API——但我现在遇到了一些障碍。
我不知道如何循环,例如,membershipId
每个Response.characters.data.(?).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"
和)的结果 - 它根据 API 请求而变化,因此"2305843009299512096"
:"2305843009317224837"
{
"Response": {
"characters": {
"data": {
"2305843009301086354": {
"characterId": "2305843009301086354",
},
"2305843009299512096": {
"characterId": "2305843009299512096",
},
"2305843009317224837": {
"characterId": "2305843009317224837",
}
然后从那里,我希望能够为这些结果console.log
的characterId
每个循环。.data
对不起,如果这更没有意义,但我非常感谢到目前为止的帮助!
第二次编辑: 抱歉,伙计们,我很厚 - 让它工作,非常感谢帮助!
解决方案
遍历属性Object.values
以data
获取每个成员对象,然后提取每个成员对象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);
});
推荐阅读
- jquery - jQuery Dialog 上的 Google Blockly UI 不可编辑
- go - 在给定索引的情况下打印字符串的排列
- swift - Swift - 基于不同尺寸设备的动作
- java - 使用扫描仪时找不到句子中的单词
- react-native - React Native - Scrollview 水平冻结
- c# - c# - MemoryMappedFile,MemoryMappedFileAccess.ReadExecute 做什么或者我应该什么时候使用它?
- django - 如何从数据库中为 Django Rest Framework 中的登录用户返回数据?
- android - 从 URI 创建一个可写的 DocumentFile
- ios - 错误域 = WebKitErrorDomain 代码 = 102 “帧加载中断”
- mysql - 如何从 mysql 表中获取该 id 的名称?