Javascript 是否有一种快速的方法来迭代JSON对象,将每个对象的标题更改为其中一个值';什么是关键价值观?

Javascript 是否有一种快速的方法来迭代JSON对象,将每个对象的标题更改为其中一个值';什么是关键价值观?,javascript,json,Javascript,Json,例如,如果我有这样一个JSON对象: { "28595": { "displayProperties": { "description": "I wish to be strategic.", "name": "Helm of the Great Hunt", "icon": "/common/destiny2_content/icons/c9ff2846a1474f315305e4f9bc413b2e.jpg", "hasIcon":

例如,如果我有这样一个JSON对象:

{
  "28595": {
    "displayProperties": {
      "description": "I wish to be strategic.",
      "name": "Helm of the Great Hunt",
      "icon": "/common/destiny2_content/icons/c9ff2846a1474f315305e4f9bc413b2e.jpg",
      "hasIcon": true
    },
    "scope": 1,
    "sourceString": "Source: Last Wish raid.",
    "sourceHash": 2455011338,
    "itemHash": 2274520361,
    "acquisitionInfo": {
      "runOnlyAcquisitionRewardSite": false
    },
    "stateInfo": {
      "requirements": {
        "entitlementUnavailableMessage": "Requires Destiny 2: Forsaken"
      }
    },
    "presentationInfo": {
      "presentationNodeType": 2,
      "parentPresentationNodeHashes": [
        1847361717,
        558738844
      ],
      "displayStyle": 3
    },
    "hash": 28595,
    "index": 686,
    "redacted": false,
    "blacklisted": false
  },
  "637236": {
    "displayProperties": {
      "description": "I wish to be wise.",
      "name": "Hood of the Great Hunt",
      "icon": "/common/destiny2_content/icons/b70e19e236a3cfd0fc762be6f2d226d9.jpg",
      "hasIcon": true
    },
    "scope": 1,
    "sourceString": "Source: Last Wish raid.",
    "sourceHash": 2455011338,
    "itemHash": 3251351304,
    "acquisitionInfo": {
      "runOnlyAcquisitionRewardSite": false
    },
    "stateInfo": {
      "requirements": {
        "entitlementUnavailableMessage": "Requires Destiny 2: Forsaken"
      }
    },
    "presentationInfo": {
      "presentationNodeType": 2,
      "parentPresentationNodeHashes": [
        1375933816,
        282080253
      ],
      "displayStyle": 3
    },
    "hash": 637236,
    "index": 1202,
    "redacted": false,
    "blacklisted": false
  }
}
有没有一种快速方法可以让我遍历每个对象(
28595
&
637236
),并用say
itemHash
的值替换对象标题

因此,我的第一个对象标题将更改为
2274520361
,第二个对象标题将更改为
3251351304

它必须循环遍历整个文件,因为它大约有112000行长,因此我需要一个脚本来循环遍历数据,但我不知道如何创建一个脚本

之所以要这样做,是因为我在应用程序中使用项目哈希来引用每个对象,但这个JSON数据不像我在应用程序中使用的其他数据那样使用标准项目哈希

编辑:


最好我希望在编写React应用程序时使用JavaScript完成此操作,但该文件存储在本地,并通过一个
const
引用,因此,如果有一种方法可以使用另一种语言来完成此操作,那么只需使用更新后的文件,我会全神贯注,并愿意在之前提供它,假设a是您的JSON。记住,a必须是let或var

for (const key in a) {
  if (a.hasOwnProperty(key)) {
    a[a[key]["itemHash"]] = a[key];
    delete a[key];
  }
}

简单for循环可用于创建新对象。建议检查重复的itemHash值,以防万一。此外,最好使用新对象,而不是改变原始对象,以避免一些边缘情况问题

var result={},obj={“28595”:{“displayProperties”:{“description”:“我希望具有战略意义”,“name”:“伟大狩猎的掌舵人”,“icon”:“/common/destiny2_content/icons/c9ff2846a1474f315305e4f9bc413b2e.jpg”,“hasIcon”:true},“scope”:1,“sourceString”:“Source:Last wish raid.”,“sourceHash”:2455011338,“itemHash”:2274520361,“acquisitionInfo”:{“runOnlyAcquisitionRewardSite”:false},“stateInfo”:{“需求”:{“权利不可用消息”:“需要命运2:被抛弃”},“呈现信息”:{“呈现节点类型”:2,“父代呈现节点类型”:[1847361717558738844],“显示样式”:3},“哈希”:28595,“索引”:686,“编辑”:false,“黑名单”:false},“637236”:{“显示属性”:description:“我希望明智。”,“name:“伟大狩猎的胡德”,“icon:”/common/destiny2_content/icons/b70e19e236a3cfd0fc762be6f2d26d9.jpg”,“hasIcon”:true},“scope”:1,“sourceString:“Source:遗愿raid.”,“sourceHash”:2455011338,“itemHash”:3251351304,“acquisitionInfo:{“runnlyacquisitionrewardsite”:false},“stateInfo:{”要求:{”AuthenticationUnavailableMessage:“Required Destiny 2:Forsaken”},“presentationInfo:{“presentationNodeType”:2,“ParentPresentationNodeHash:[1375933816282080253],“displayStyle”:3},“hash”:637236,“index”:1202,“redacted”:false,“Blacklist”:false}
for(obj中的var键)
if(obj[key].itemHash在结果中)
console.log('replicate itemHash value:',obj[key].itemHash)
其他的
结果[obj[key].itemHash]=obj[key]

console.log(result)
您应该指定您希望使用的编程语言或技术。我已经更新了我的问题,感谢tipStackoverflow并不是为了让其他人为您进行编程。您应该首先尝试开发脚本,如果无法正确使用,您可以询问它有什么问题。