映射嵌套对象

Posted

技术标签:

【中文标题】映射嵌套对象【英文标题】:mapping nested Objects 【发布时间】:2020-09-27 01:31:54 【问题描述】:

大家好

我有以下对象:

series:
   Serie1:
      subseries1:
         a:a1,
         b:b2,
      ,
      subseries2:
         a:a1,
         b:b2,,
      ,
   Serie2:
      subseries1:
         a:a1,
         b:b2,
      

我想映射这个对象,所以我会得到一个类似

的数组
[subseries1, subseries2,subseries1]

我正在使用这张地图:

Object.keys(series).map(k => Object.keys(series[k]).map(key => k[key])

但是,这根本不是我打算做的。有什么建议吗?

【问题讨论】:

提示:循环 Series<i> 并将处理后的值推送到数组中。将当前迭代的输出与前一个迭代相连接。那应该解决它 你能先纠正series中的语法吗? Serie1 似乎是一个数组,但你让它看起来像一个对象 【参考方案1】:

使用Object.values解开第一级SerieN值 使用flatMap 合并和映射子系列 使用Object.entries 提取[[key,value]...] 并映射到单个对象

data = 
  series: 
    Serie1: 
      subseries1: 
        a: 'a1',
        b: 'b2',
      ,
      subseries2: 
        a: 'a1',
        b: 'b2',
      ,
    ,
    Serie2: 
      subseries1: 
        a: 'a1',
        b: 'b2',
      
    
  

console.log(
Object.values(data.series).flatMap(x=>Object.entries(x).map(([k,v])=>([k]:v)))
)

【讨论】:

以上是关于映射嵌套对象的主要内容,如果未能解决你的问题,请参考以下文章

使用映射库将嵌套对象映射到 C# 中的自定义对象

如何将具有嵌套对象的复杂 json 文件映射到 java 对象?

我的弹性映射中有一个嵌套对象。我正在尝试为该嵌套对象创建过滤器查询

RestKit 0.20 嵌套对象映射(对象树的路径不同)

Jackson:映射嵌套对象

无法映射嵌套的 RestKit 对象