将Json数据映射到新的键值对JavaScript对象

将Json数据映射到新的键值对JavaScript对象,javascript,arrays,json,mapping,key-value,Javascript,Arrays,Json,Mapping,Key Value,我想将一个json数据映射到一个新的javascript对象,如下所示。这里的json数据是动态的,可以有更多的文件和更多的用户。组信息是新的,它取决于父子信息。谁能帮帮我吗?谢谢你抽出时间 之前: { "userinfo": { "/home/user/main/sub/info/1stfile.txt": { "John": "something", "Mike": "something", "Merry": "something",

我想将一个json数据映射到一个新的javascript对象,如下所示。这里的json数据是动态的,可以有更多的文件和更多的用户。组信息是新的,它取决于父子信息。谁能帮帮我吗?谢谢你抽出时间

之前:

{
  "userinfo": {
    "/home/user/main/sub/info/1stfile.txt": {
      "John": "something",
      "Mike": "something",
      "Merry": "something",
      "Susan": "something"
    },
    "/home/user/main/info/2ndfile.txt": {
      "Mulan": "something",
      "James": "something"
    },
    "/home/user/main/info/3rdfile.txt": {
      "Nancy": "something"
    },
    "/home/user/main/4thfile.txt": {
      "Kamal": "something",
      "Xian": "something",
      "Mila": "something"
    }
  }
}
之后:

{
  "name": "main",
  "children": [
    {
      "name": "1stfile",
      "children": [
        {
          "name": "John",
          "group": "1"
        },
        {
          "name": "Mike",
          "group": "1"
        },
        {
          "name": "Merry",
          "group": "1"
        },
        {
          "name": "Susan",
          "group": "1"
        }
      ],
      "group": 1
    },
    {
      "name": "2ndfile",
      "children": [
        {
          "name": "Mulan",
          "group": 2
        },
        {
          "name": "James",
          "group": 2
        }
      ],
      "group": 2
    },
    {
      "name": "3rdfile",
      "children": [
        {
          "name": "Nancy",
          "group": 3
        }
      ],
      "group": 3
    },
    {
      "name": "4thfile",
      "children": [
        {
          "name": "Kamal",
          "group": 4
        },
        {
          "name": "Xian",
          "group": 4
        },
        {
          "name": "Mila",
          "group": 4
        }
      ],
      "group": 4
    }
  ],
  "group": 0
}
我试图使用下面的代码构建一个父-子块

var jsonData=json[“userinfo”];
var keys=Object.keys(jsonData);
控制台日志(键);
让数据={};
对于(var j=0;j
它给出了以下输出

{
  0: {
    "name": "/home/user/main/sub/info/1stfile.txt",
    "group": 1
  },
  1: {
    "name": "/home/user/main/info/2ndfile.txt",
    "group": 1
  },
  2: {
    "name": "/home/user/main/info/3rdfile.txt",
    "group": 1
  },
  3: {
    "name": "/home/user/main/4thfile.txt",
    "group": 1
  }
}

该值分配正确,但正在创建额外的关键点(0,1,2,3)

假设你需要这样的东西

您可以利用和运行您的操作


const beforeJSON=`{
“用户信息”:{
“/home/user/main/sub/info/1stfile.txt”:{
“约翰”:“某物”,
“迈克”:“什么东西”,
“快乐”:“某物”,
“苏珊”:“什么”
},
“/home/user/main/info/2ndfile.txt”:{
“木兰”:“某物”,
“詹姆斯”:“什么”
},
“/home/user/main/info/3rdfile.txt”:{
“南希”:“什么”
},
“/home/user/main/4thfile.txt”:{
“Kamal”:“某物”,
“西安”:“某物”,
“Mila”:“某物”
}
}
}`
const before=JSON.parse(beforeJSON);
const filenames=Object.keys(在.userinfo之前);
常数后={
名称:'main',
儿童:[],
组别:0,,
}
const children=filenames.map((文件名,idx)=>{
const innerChildren=Object.keys(在.userinfo[filename]之前)map((n)=>({
姓名:n,,
组别:idx+1,,
}))
返回({
名称:filename,
孩子们:孩子们,
组别:idx+1,,
});
})
after.children=儿童;
console.log(之后);

请在下次发布另一个问题之前格式化您的代码。

您能告诉我们到目前为止您尝试了什么吗?我已经包含了代码片段。您能提供有效的前后格式吗?前<代码>和后<代码>的有效示例这是我的任务的有效示例。我刚刚用“某物”替换了用户信息。非常感谢您,我将在将来适当地格式化我的问题。