将Json数据映射到新的键值对JavaScript对象
我想将一个json数据映射到一个新的javascript对象,如下所示。这里的json数据是动态的,可以有更多的文件和更多的用户。组信息是新的,它取决于父子信息。谁能帮帮我吗?谢谢你抽出时间 之前:将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",
{
"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(之后);
请在下次发布另一个问题之前格式化您的代码。您能告诉我们到目前为止您尝试了什么吗?我已经包含了代码片段。您能提供有效的前后格式吗?前<代码>和后<代码>的有效示例这是我的任务的有效示例。我刚刚用“某物”替换了用户信息。非常感谢您,我将在将来适当地格式化我的问题。