json - 在 Angular 2+ 中重构 JSON 响应

标签 json angular typescript

我目前收到一个嵌套很深的 web api JSON 响应,我想对其进行重组,只提取我需要的数据并使其更简单。

我如何在 Angular 2+/Typescript 中执行此操作?

非常感谢任何帮助。

假设我有这样的东西:

"O1": {
    "P1": "Something",
    "A1": [{
       "P2": "Something",
       "A2": [{
         "P3": "Something"
        }]
    }]
    "P4": "Something"
}

我想将其重组为:

"O1": {
    "P1": "Something",
    "P2": "Something",
    "P3": "Something"
}

我可以在构造函数的类中重建模型吗?如果是这样,到目前为止我还没有在网上找到任何东西。

如果我需要提供任何进一步的信息,请告诉我。

谢谢

最佳答案

让我们使用 snippet which was proposed 展平初始对象.然后我们可以过滤那些我们需要包含在最终对象中的属性:

 function filterObj(obj: any, propsForFilter: string[]) {
  const result = {};
  for (let prop in obj) {
    const filteredProp = propsForFilter.find(p => prop.includes(p));
    if (filteredProp) {
      result[filteredProp] = obj[prop];
    }
  }
  return result;
}
const flattened = flattenObject(obj);
console.log(flattened, filterObj(flattened, ['P1', 'P2']));

此方法 filterObj 接受属性数组,以便将它们包含在最终结果中。希望这对您有所帮助。

关于json - 在 Angular 2+ 中重构 JSON 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52026875/

相关文章:

json - Spring data rest @ManyToOne 字段不在 json 中

wcf - 发送到 WCF 服务时在 Soap 信封中使用 json 正文

PHP 在 json 数组中搜索

java - java对象中json属性的掩码

typescript TS5042 内部版本 : Option 'project' cannot be mixed with source files on a command line

html - 更漂亮的格式化配置

angular - 从 Firebase 数据库获取数据时出错

node.js - TypeScript:防止加载不导出的@types 定义(TS2306 不是模块)

javascript - 当我尝试获取所选文本的 html 时,如何避免浏览器自动打开或关闭标签

javascript - JS/TS必须使用bind但仍需要原来的this