【问题标题】:JSON Object property into JSON Object nameJSON 对象属性转换为 JSON 对象名称
【发布时间】:2020-02-02 00:42:26
【问题描述】:

我有一个 JSON 文件,其中包含很多这样的对象(例如 Pikemen 单位的属性>Heroes 3 btw

[ {
        "ID": 0,
        "AI": 80,
        "": null,
        "Level": 0,
        "Growth": 14,
        "Low": 20,
        "High": 50,
        "Town": 0,
        "Name": "Pikeman",
    }, etc.. ]

如何使 "Name" 属性成为 JSON 文件中每个对象的名称?在 JS 代码中或通过格式化文件。我的意思是:

[ "Pikeman": {
       "ID": 0,
       "AI": 80,
       etc..
} ]

【问题讨论】:

    标签: javascript json typescript object notation


    【解决方案1】:

    像这样使用它:

    let obj = [{
            "ID": 0,
            "AI": 80,
            "": null,
            "Level": 0,
            "Growth": 14,
            "Low": 20,
            "High": 50,
            "Town": 0,
            "Name": "Pikeman",
        },{
            "ID": 0,
            "AI": 82220,
            "": null,
            "Level": 230,
            "Growth": 14,
            "Low": 20213,
            "High": 12312050,
            "Town": 10,
            "Name": "Pikeman2",
        }]
    
    obj.forEach((item, index) => {
      obj[item.Name] = item;
      delete obj[index];
    })
    
    console.log(obj)
    

    【讨论】:

    • 我有很多这样的对象。我需要某种循环来执行此操作,因为文件太长
    【解决方案2】:

    嗨@Adrian您可以遍历您的数组并获取名称并将int指定为键检查:

    let obj = [ {
            "ID": 0,
            "AI": 80,
            "": null,
            "Level": 0,
            "Growth": 14,
            "Low": 20,
            "High": 50,
            "Town": 0,
            "Name": "Pikeman",
        }, 
        {
            "ID": 0,
            "AI": 80,
            "": null,
            "Level": 0,
            "Growth": 14,
            "Low": 20,
            "High": 50,
            "Town": 0,
            "Name": "Pikeman1",
        }, 
        {
            "ID": 0,
            "AI": 80,
            "": null,
            "Level": 0,
            "Growth": 14,
            "Low": 20,
            "High": 50,
            "Town": 0,
            "Name": "Pikema2",
        }]
    
        let objConverted = {};
    
        obj.forEach( o => {
          objConverted[o.Name] = o; 
        } ) 
    
        console.log(objConverted);
    

    如果你想玩代码,请勾选:https://repl.it/repls/HalfSatisfiedMainframe

    【讨论】:

    • 有效!非常感谢有用的工具
    猜你喜欢
    • 2021-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-27
    相关资源
    最近更新 更多