【问题标题】:Trying to loop through Json Object that has more objects inside with arrays of objects试图循环遍历内部有更多对象和对象数组的 Json 对象
【发布时间】:2016-08-09 13:07:08
【问题描述】:

我一直在试图循环这个 json 文件。

当我在控制台记录这个时,它说响应是一个对象,数据是一个对象,saleItemCategories 是一个数组,它有四个对象,第一个是车辆,它是一个项目对象数组。

基本上我试图从这些项目对象中获取各种值。在这一点上,我只是在寻求深入到这个级别的帮助。

"Response":{
  "data":{
     "vendorHash":2668878854,
     "nextRefreshDate":"9999-12-31T23:59:59.999Z",
     "enabled":true,
     "saleItemCategories":[
        {
           "categoryIndex":2,
           "categoryTitle":"Vehicles",
           "saleItems":[
              {
                 "item":{
                    "itemHash":3645385954,
                    "bindStatus":0,
                    "isEquipped":false,
                    "itemInstanceId":"0",
                    "itemLevel":0,
                    "stackSize":1,
                    "qualityLevel":0,
                    "stats":[
                       {
                          "statHash":3017642079,
                          "value":35,
                          "maximumValue":100
                       }
                    ],
                    "primaryStat":{
                       "statHash":1501155019,
                       "value":150,
                       "maximumValue":0
                    },
                    "canEquip":true,
                    "equipRequiredLevel":0,
                    "unlockFlagHashRequiredToEquip":2166136261,
                    "cannotEquipReason":0,
                    "damageType":0,
                    "damageTypeHash":0,
                    "damageTypeNodeIndex":-1,
                    "damageTypeStepIndex":-1,
                    "progression":{
                       "dailyProgress":0,
                       "weeklyProgress":0,
                       "currentProgress":0,
                       "level":0,
                       "step":0,
                       "progressToNextLevel":0,
                       "nextLevelAt":0,
                       "progressionHash":0
                    },
                    "talentGridHash":2064730449,
                    "nodes":[
                       {
                          "isActivated":true,
                          "stepIndex":0,
                          "state":10,
                          "hidden":false,
                          "nodeHash":0
                       }
                    ],
                    "useCustomDyes":true,
                    "artRegions":{

                    },
                    "isEquipment":true,
                    "isGridComplete":false,
                    "perks":[
                       {
                          "iconPath":"/common/destiny_content/icons/b65252b2007607955aa1fc3026154c8c.png",
                          "perkHash":4091143788,
                          "isActive":true
                       }
                    ],
                    "location":3,
                    "transferStatus":0,
                    "locked":false,
                    "lockable":false,
                    "objectives":[

                    ],
                    "state":0
                 },
                 "vendorItemIndex":30,
                 "itemStatus":0,
                 "costs":[
                    {
                       "itemHash":2534352370,
                       "value":175
                    }
                 ],
                 "requiredUnlockFlags":[

                 ],
                 "unlockStatuses":[

                 ],
                 "failureIndexes":[

                 ]
              },

我尝试将每个响应作为对象循环,然后将每个数据作为对象循环,然后我尝试循环通过 saleItemCategories 数组,但这通常是它中断的地方

【问题讨论】:

  • 如果你需要帮助,你应该发布你尝试过的代码
  • 将代码发布在它中断的地方。虽然无法完全解决您的问题...

标签: javascript jquery arrays json


【解决方案1】:
var json = "your data";

var itemCategories = json.Response.data.saleItemCategories;

for (int i = 0; i < itemCategories.length; i++) {
  var categoryItems = itemCategories[i].saleItems;
  console.log(categoryItems.categoryTitle);

  for (int j = 0; j < categoryItems.length; j++) {
    var categoryItem = categoryItems[j];
    var categoryItemStats = categoryItem.stats;

    console.log(categoryItem.itemHash);

    for (var k = 0; k < categoryItemStats; k++) {
      var categoryItemStat = categoryItemStats[k];

      console.log(categoryItemStat);
    }
  }
}

【讨论】:

  • 这太好了,感谢您帮助我解决这个问题。此外,我从未想过在数据中开始更深的循环。非常感谢!
猜你喜欢
  • 2016-07-28
  • 1970-01-01
  • 1970-01-01
  • 2021-05-21
  • 2022-01-14
  • 2015-06-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多