Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过jquery将JSON转换为特定的JSON格式_Jquery_Json - Fatal编程技术网

通过jquery将JSON转换为特定的JSON格式

通过jquery将JSON转换为特定的JSON格式,jquery,json,Jquery,Json,这是我的JSON输入。我想在每个对象之前附加数据对象,并将其转换为下面给出的特定格式。同样,任何可用的插件也可以。将JSON转换为特定格式 [ { "guid":"6FCBBB6B-4B5E-42C4-B108-12F594DABEE2", "companyGuid":"12A5CD86-F6C6-455F-B27A-EFE587ED410D", "parentLocationGuid":null, "name":"location1", "descrip

这是我的JSON输入。我想在每个对象之前附加数据对象,并将其转换为下面给出的特定格式。同样,任何可用的插件也可以。将JSON转换为特定格式

  [  
    {  
  "guid":"6FCBBB6B-4B5E-42C4-B108-12F594DABEE2",
  "companyGuid":"12A5CD86-F6C6-455F-B27A-EFE587ED410D",
  "parentLocationGuid":null,
  "name":"location1",
  "description":"test",
  "isActive":true,
  "row_num":2,
  "children":[  
     {  
        "guid":"6FCBBB6B-4B5E-42C4-B108-12F594DABEE1",
        "companyGuid":"12A5CD86-F6C6-455F-B27A-EFE587ED410D",
        "parentLocationGuid":"6FCBBB6B-4B5E-42C4-B108-12F594DABEE2",
        "name":"child location",
        "description":"test child",
        "isActive":true,
        "row_num":1,
        "children":[  

        ]
     }
  ]
  }
  ]
我希望输出为:

   [  
    {  
  "data":{  
     "guid":"6FCBBB6B-4B5E-42C4-B108-12F594DABEE2",
     "companyGuid":"12A5CD86-F6C6-455F-B27A-EFE587ED410D",
     "parentLocationGuid":null,
     "name":"location1",
     "description":"test",
     "isActive":true,
     "row_num":2
  },
  "children":[  
     {  
        "data":{  
           "guid":"6FCBBB6B-4B5E-42C4-B108-12F594DABEE1",
           "companyGuid":"12A5CD86-F6C6-455F-B27A-EFE587ED410D",
           "parentLocationGuid":"6FCBBB6B-4B5E-42C4-B108-12F594DABEE2",
           "name":"child location",
           "description":"test child",
           "isActive":true,
           "row_num":1
        },
        "children":[  

        ]
     }
  ]
}
]

相当容易使用ES6解构和扩展运算符

const res=data.map({children,…otherProps})=>({data:{…otherProps},children});
console.log(res)
。作为控制台包装{最大高度:100%!重要;}

风险值数据=[{
“guid”:“6FCBBB6B-4B5E-42C4-B108-12F594DABEE2”,
“公司指南”:“12A5CD86-F6C6-455F-B27A-EFE587ED410D”,
“parentLocationGuid”:空,
“名称”:“位置1”,
“说明”:“测试”,
“isActive”:是的,
“行数”:2,
“儿童”:[{
“guid”:“6FCBBB6B-4B5E-42C4-B108-12F594DABEE1”,
“公司指南”:“12A5CD86-F6C6-455F-B27A-EFE587ED410D”,
“parentLocationGuid”:“6FCBBB6B-4B5E-42C4-B108-12F594DABEE2”,
“名称”:“子位置”,
“说明”:“测试子项”,
“isActive”:是的,
“行数”:1,
“儿童”:[
]
}]
}]

以下是您试图实现的ES6实现。这适用于包含多个元素的列表

function formatter(input){
    let output = new Array();
    input.forEach( data_input=>{
      let result = {};
      let children = [];
      result['data'] = {};
      Object.keys(data_input).forEach(key => {
       if (data_input[key] instanceof Object ){
         if(!(data_input[key] instanceof Array && data_input[key].length===0 )) 
         children = data_input[key];
       }
       else{
        result['data'][key] = data_input[key]
       }
    })
      result['children'] = formatter(children);
      output.push({'data': result['data']},{'children': result['children']})
    })
 return output
}

let myInput = [  
    {  
  "guid":"6FCBBB6B-4B5E-42C4-B108-12F594DABEE2",
  "companyGuid":"12A5CD86-F6C6-455F-B27A-EFE587ED410D",
  "parentLocationGuid":null,
  "name":"location1",
  "description":"test",
  "isActive":true,
  "row_num":2,
  "children":[  
     {  
        "guid":"6FCBBB6B-4B5E-42C4-B108-12F594DABEE1",
        "companyGuid":"12A5CD86-F6C6-455F-B27A-EFE587ED410D",
        "parentLocationGuid":"6FCBBB6B-4B5E-42C4-B108-12F594DABEE2",
        "name":"child location",
        "description":"test child",
        "isActive":true,
        "row_num":1,
        "children":[  

        ]
     }
  ]
  }
  ]



console.log(formatter(myInput))

您尝试了什么?尝试循环并附加到数据对象,但没有得到所需的结果。我遗漏了一些东西,你应该解析json并从中创建你的对象。我发布了一个答案,给出了你的输出。请让我知道这是否是你想要的。“可能b我遗漏了一些东西”-是的,你遗漏了询问插件等的建议在这里是离题的,而且这不是一个代码编写服务,所以你至少应该向我们展示你迄今为止尝试过的东西。请阅读这方面的内容。我还需要子节点中的数据对象。。在所有N级儿童中,感谢您的回答。实际上,我需要在子节点启动之前完成数据对象。在这种情况下,数据对象同时包含父对象和子对象。我需要不同数据对象中的父节点和子节点。请帮助..编辑,现在尝试。