Свойство объекта JSON в имя объекта JSON - PullRequest
1 голос
/ 03 октября 2019

У меня есть JSON-файл с множеством подобных объектов (например, свойства юнита Пайкмен> Герои 3 между прочим <): </p>

[ {
        "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..
} ]

Ответы [ 3 ]

0 голосов
/ 03 октября 2019

Hi @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

0 голосов
/ 03 октября 2019

try: let obj = {};obj ['Pikeman'] = {"ID": 0, "AI": 80 и т. д.}

0 голосов
/ 03 октября 2019

Используйте это так:

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)
...