2017-03-06 40 views
0

我有几个情况需要将地图字段转换为有时嵌套几层的数组字段。这些是需要在文档中更改的唯一字段,所以其他字段不需要对它们执行任何类型的转换。我目前的做法是在每个级别上不变的领域进行复制,这样的:使用Jolt更改目标字段

[ 
    { 
    "operation": "shift", 
    "spec": { 
     "agentsMetrics": { 
     "metricsPerAgent": { 
      "*": { 
      "$": "agentsMetrics.metricsPerAgent[#2].agentId", 
      "@": "agentsMetrics.metricsPerAgent[#2].value" 
      } 
     }, 
     "*": { 
      "@": "agentsMetrics.&" 
     } 
     }, 
     "skillsMetricsPerAgent": { 
     "metricsPerSkill": { 
      "*": { 
      "$": "skillsMetricsPerAgent.metricsPerSkill[#2].skillId", 
      "metricsPerAgent": { 
       "*": { 
       "$": "skillsMetricsPerAgent.metricsPerSkill[#4].metricsPerAgent[#2].agentId", 
       "@": "skillsMetricsPerAgent.metricsPerSkill[#4].metricsPerAgent[#2].value" 
       } 
      }, 
      "*": { 
       "@": "skillsMetricsPerAgent.metricsPerSkill[#3].&" 
      } 
      } 
     }, 
     "*": { 
      "@": "skillsMetricsPerAgent.&" 
     } 
     } 
    } 
    } 
] 

当我输入的是这样的:

{ 
    "agentsMetrics": { 
     "metricsTotals": { 
      "connectedEngagements": 70, 
      "nonInteractiveTotalHandlingTime": 309, 
      "totalHandlingTime": 47696, 
      "totalNonInteractiveChats": 2, 
      "totalInteractiveChats": 73 
     }, 
     "metricsPerAgent": { 
      "645355412": { 
       "connectedEngagements": 2, 
       "nonInteractiveTotalHandlingTime": 0, 
       "totalHandlingTime": 1718, 
       "totalNonInteractiveChats": 0, 
       "totalInteractiveChats": 2 
      }, 
      "645366912": { 
       "connectedEngagements": 1, 
       "nonInteractiveTotalHandlingTime": 0, 
       "totalHandlingTime": 488, 
       "totalNonInteractiveChats": 0, 
       "totalInteractiveChats": 1 
      } 
     } 
    }, 
    "skillsMetricsPerAgent": { 
     "metricsTotals": { 
      "connectedEngagements": 70, 
      "nonInteractiveTotalHandlingTime": 309, 
      "totalHandlingTime": 47696, 
      "totalNonInteractiveChats": 2, 
      "totalInteractiveChats": 73 
     }, 
     "metricsPerSkill": { 
      "641431612": { 
       "metricsTotals": { 
        "connectedEngagements": 7, 
        "nonInteractiveTotalHandlingTime": 0, 
        "totalHandlingTime": 6377, 
        "totalNonInteractiveChats": 0, 
        "totalInteractiveChats": 8 
       }, 
       "metricsPerAgent": { 
        "645355312": { 
         "connectedEngagements": 1, 
         "nonInteractiveTotalHandlingTime": 0, 
         "totalHandlingTime": 115, 
         "totalNonInteractiveChats": 0, 
         "totalInteractiveChats": 1 
        }, 
        "645365512": { 
         "connectedEngagements": 0, 
         "nonInteractiveTotalHandlingTime": 0, 
         "totalHandlingTime": 766, 
         "totalNonInteractiveChats": 0, 
         "totalInteractiveChats": 1 
        } 
       } 
      }, 
      "1218517512": { 
       "metricsTotals": { 
        "connectedEngagements": 2, 
        "nonInteractiveTotalHandlingTime": 0, 
        "totalHandlingTime": 1379, 
        "totalNonInteractiveChats": 0, 
        "totalInteractiveChats": 2 
       }, 
       "metricsPerAgent": { 
        "645367512": { 
         "connectedEngagements": 1, 
         "nonInteractiveTotalHandlingTime": 0, 
         "totalHandlingTime": 571, 
         "totalNonInteractiveChats": 0, 
         "totalInteractiveChats": 1 
        }, 
        "645378812": { 
         "connectedEngagements": 1, 
         "nonInteractiveTotalHandlingTime": 0, 
         "totalHandlingTime": 808, 
         "totalNonInteractiveChats": 0, 
         "totalInteractiveChats": 1 
        } 
       } 
      } 
     } 
    } 
} 

有什么办法,以针对特定的领域和操纵它们他们自己而离开一切,因为它是?在这种情况下,我想定位metricsPerAgent和metricsPerSkill。

回答

1

有没有什么方法可以针对特定的领域并独自操作它们,而将其他所有事情都保留下来?

没有/没有换档/目前没有。请注意,“shift”操作正在进行从输入到输出的复制。