给定一个输入JSON文件,它有两个数组:

[
  {
    "objects": ["obj1","obj2","obj3","obj4","obj5"]
  },
  {
    "types": ["kpi1","kpi2","kpi3","kpi4"]
  }
]

我如何转换它,因为输出是一个JSON,它将对象数组中的每个元素分组到单个对象中,其中所有元素都来自类型array.

预期成果应当是:

{
 "new":[
   { "obj":"obj1","types": ["kpi1","kpi2","kpi3","kpi4"] },
   { "obj":"obj2","types": ["kpi1","kpi2","kpi3","kpi4"] },
   { "obj":"obj3","types": ["kpi1","kpi2","kpi3","kpi4"] },
   { "obj":"obj4","types": ["kpi1","kpi2","kpi3","kpi4"] },
   { "obj":"obj5","types": ["kpi1","kpi2","kpi3","kpi4"] }        
 ]
}

我已经编写了Jolt规范,但只是将类型数组附加到新的[]列表中.它不会更新每个对象.

{
  "operation": "shift",
  "spec": {
    "*": {
      "objects": {
        "*": "new[].obj"
      },
      "types": {
        "@": "new[].&"
      }
    }
  }
}

输出为:

{
  "new" : [ {
    "obj" : "obj1"
  }, {
    "obj" : "obj2"
  }, {
    "obj" : "obj3"
  }, {
    "obj" : "obj4"
  }, {
    "obj" : "obj5"
  }, {
    "types" : [ "kpi1", "kpi2", "kpi3", "kpi4" ]
  } ]
}

推荐答案

在明确派生整个类型数组之后,您似乎需要在"对象"数组的索引内循环,以便能够在第二个转换中使用,例如

[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "*ects": {
          "*": { // indexes of the "objects" array
            "@": "new[&1].&(2,1)" // going 2 levels up the tree and grabbing first
                                  // replacement of asterisk by using &(2,1)
                                  // to replicate "obj"
          }
        },
        "types": "&"
      }
    }
  },
  {
    "operation": "shift",
    "spec": {
      "new": {
        "*": { // indexes of the "new" array
          "@": "&2[&]", // &2 copies the literal "new" by traversing 2 levels up the tree
          "@2,types": "&2[&].types"
        }
      }
    }
  }
]

现场https://jolt-demo.appspot.com/上的101个是:

enter image description here

Json相关问答推荐

与错误相关的未定义&Quot;不是有效的JSON

如何创建生成两个不同对象的JSON数组的SQL查询?

如何在Swift中使用JSON编码器的泛型

无法使用Jolt变换在嵌套的JSON中提取值

使用JQ合并JSON列表中的对象

在linux控制台中解析json字符串的最简单方法是什么?

VBA-JSON 嵌套集合解析为 Excel

如何使用 serde_json 构建有状态的流式解析器?

通过 xslt 将内部 json 转换为 xml 时遇到问题

将文本转换为 python 列表

我无法在 Go - Gin 中解析日期/时间

如何配置spring mvc 3在json响应中不返回null对象?

将 js Array() 转换为 JSON 对象以用于 JQuery .ajax

Swift - 将图像从 URL 写入本地文件

如何判断字符串是否为json格式

规范化 JSON 文件

如何使用 Jackson 重命名 JSON 序列化中的根键

有 Json 标签但未导出

从 Json 对象 Android 中获取字符串值

PHP json_encode json_decode UTF-8