Javascript 置换的震动规范

Javascript 置换的震动规范,javascript,java,json,transformation,jolt,Javascript,Java,Json,Transformation,Jolt,你能帮我写一下以下的震动规范吗 输入: { "title": [ "vsnu", "anothervsnu" ], "anothertitle": [ "vsnu", "anothervsnu" ] } 预期产出: { Response : [ { "head" : "title", "name" : "vsnu" }, { "head" : "title", "name" : "anothervs

你能帮我写一下以下的震动规范吗

输入:

{
    "title": [
        "vsnu",
        "anothervsnu"
    ],
    "anothertitle": [
        "vsnu",
        "anothervsnu"
    ]
}
预期产出:

{
Response : [
{
"head" : "title",
"name" : "vsnu"
},
{
"head" : "title",
"name" : "anothervsnu"
},
{
"head" : "anothertitle",
"name" : "vsnu"
},
{
"head" : "anothertitle",
"name" : "anothervsnu"
}
]
}
在过去的三天里,我一直被困在这里面。请帮我做这个。 我希望上面的问题能够解释预期,我写这篇文章只是因为StackOverflow显示了验证错误消息


提前感谢。

您只需要两个迭代器,一个用于输入的键,另一个用于属性的数组

函数构建对象(o){
var结果=[];
Object.keys(o).forEach(函数(k){
o[k].forEach(函数(a){
push({head:k,name:a});
});
});
返回{响应:结果};
}
变量输入={“标题”:[“vsnu”,“另一个vsnu”],“另一个标题”:[“vsnu”,“另一个vsnu”]},
输出=构建对象(输入);
document.write(“”+JSON.stringify(输出,0,4)+“”)因为Jolt“shift”一次处理一个项目,所以它很难写入映射数组的输出

这是可以做到的,但需要两班倒。第一个数组构建“head”和“name”的并行数组,第二个数组使用并行数组中的索引号将它们旋转到响应数组中

规格

[
  {
    "operation": "shift",
    "spec": {
      "*": { // title or anothertitle
        "*": { // array index
          "*": { // actual array value "vsnu"
            "$2": "head[]", // for each array value grab a copy of the "title"
            "$": "name[]"
          }
        }
      }
    }
  },
  {
    "operation": "shift",
    "spec": {
      "head": {
        "*": "Response[&].head"
      },
      "name": {
        "*": "Response[&].name"
      }
    }
  }
]