如何使用angular 2重新排列JSON

如何使用angular 2重新排列JSON,json,typescript,Json,Typescript,我有一个类似这样的JSON const err = [ { "Error": Name Not Valid", "Content": [ { "Name": "Johnz" } ] }, { "Error": "Data Not Valid", "Content": [ {

我有一个类似这样的JSON

const err =    [
      {
        "Error": Name Not Valid",
        "Content": [
          {
            "Name": "Johnz"
          }
        ]
      },
      {
        "Error": "Data Not Valid",
        "Content": [
          {
            "Investor": "3785388",
            "ManagedBy": "Johnz"
          },
          {
            "Investor": "1111111",
            "ManagedBy": "Mary"
          }
        ]
      }]
我如何设置它使其看起来像这样?我需要将内容数组中出现的任何内容移动到标题所在的主结构中

 const err=   [
      {
        "Error": "Name Not Valid",
        "Name": "Johnz"
      },
      {
        "Error": "Data Not Valid",
        "Investor": "3785388",
        "ManagedBy": "Johnz"
      },
      {
        "Error": "Data Not Valid"
        "Investor": "1111111",
        "ManagedBy": "Mary"
        }]

如果为err变量定义最小类型,则会有所帮助

那么,一个选择就是:

const err:{Error:string,Content:any[]}[]=[
{
“错误”:“名称无效”,
“内容”:[
{
“姓名”:“Johnz”
}
]
},
{
“错误”:“数据无效”,
“内容”:[
{
“投资人”:“3785388”,
“管理人”:“Johnz”
},
{
“投资人”:“1111111”,
“管理人”:“玛丽”
}
]
}];
const flattederError=err.map(错误=>{
常量展平={error:error.error};
返回错误。内容。减少((acc,curent)=>{
Object.keys(curent.forEach)((key)=>{
acc[键]=当前[键];
});
返回acc;
},变平);
});

可以找到一个工作示例。

您展示的不是JSON,而是JS代码(或ECMA脚本或typescript,或任何今天流行的风格)。这还有一个作用。我可以使用该方法添加默认的空字段吗?假设我想在第一个数组中添加“Investor”和“ManagedBy”,在第二个数组中添加“Name”。如何动态地执行此操作?如果需要,可以使用它们初始化展平对象。但是,除非您需要将它们作为空字符串,否则在大多数情况下,未定义属性的行为基本相同。