首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Jolt中准备来自不同输入数组和对象的列表

在Jolt中准备来自不同输入数组和对象的列表
EN

Stack Overflow用户
提问于 2021-02-22 20:46:49
回答 2查看 35关注 0票数 0

嗨,我是新来的JOLT转换,我正在尝试转换一些东西,如下所示。

这里的主要目标是拥有一个对象列表,而不会在jolt中建立常量索引。

将不同的对象转换为通用列表。

任何帮助都是非常感谢的。

这里提供的数据是我所期望的一个例子。

输入:

代码语言:javascript
复制
{
  "CIT": [
    {
      "name": "name_CIT_1",
      "desc": "desc_CIT_1"
    },
    {
      "name": "name_CIT_2",
      "desc": "desc_CIT_2"
    },
    {
      "name": "name_CIT_3",
      "desc": "desc_CIT_3"
    }
  ],
  "BIT": {
    "name": "name_BIT",
    "desc": "desc_BIT"
  },
  "NIT": {
    "name": "name_NIT",
    "desc": "desc_NIT"
  },
  "KIT": {
    "name": "name_KIT",
    "desc": "desc_KIT"
  }
}

抖动:

代码语言:javascript
复制
[
  {
    "operation": "modify-default-beta",
    "spec": {
      "*": {}
    }
  },
  {
    "operation": "modify-overwrite-beta",
    "spec": {}
  },
  {
    "operation": "shift",
    "spec": {
      "CIT": {
        "*": {
          "name": "CollegeList[0].name",
          "desc": "CollegeList[0].desc"
        }
      },
      "BIT": {
        "name": "CollegeList[1].name",
        "desc": "CollegeList[1].desc"
      },
      "NIT": {
        "name": "CollegeList[2].name",
        "desc": "CollegeList[2].desc"
      },
      "KIT": {
        "name": "CollegeList[3].name",
        "desc": "CollegeList[3].desc"
      }
    }
  }
]

输出:

代码语言:javascript
复制
{
  "CollegeList" : [ {
    "name" : [ "name_CIT_1", "name_CIT_2", "name_CIT_3" ],
    "desc" : [ "desc_CIT_1", "desc_CIT_2", "desc_CIT_3" ]
  }, {
    "name" : "name_BIT",
    "desc" : "desc_BIT"
  }, {
    "name" : "name_NIT",
    "desc" : "desc_NIT"
  }, {
    "name" : "name_KIT",
    "desc" : "desc_KIT"
  } ]
}

预期输出:

代码语言:javascript
复制
{
  "CollegeList": [
    {
      "name": "name_CIT_1",
      "desc": "desc_CIT_1"
    },
    {
      "name": "name_CIT_2",
      "desc": "desc_CIT_2"
    },
    {
      "name": "name_CIT_3",
      "desc": "desc_CIT_3"
    },
    {
      "name": "name_BIT",
      "desc": "desc_BIT"
    },
    {
      "name": "name_NIT",
      "desc": "desc_NIT"
    },
    {
      "name": "name_KIT",
      "desc": "desc_KIT"
    }
  ]
}
EN

回答 2

Stack Overflow用户

发布于 2021-06-18 00:10:54

您可以使用两个级别的shift变换。实际上,除了缺省为root的数组的键之外,所需的数组都是在第一级内获得的。则只在第二级内重命名数组的键,例如

代码语言:javascript
复制
[
  {
    "operation": "shift",
    "spec": {
      "*": "&1"
    }
  },
  {
    "operation": "shift",
    "spec": {
      "@(0,&)": "CollegeList"
    }
  }
]
票数 1
EN

Stack Overflow用户

发布于 2021-06-18 23:21:53

同样的另一种方法:

代码语言:javascript
复制
[
  {
    "operation": "shift",
    "spec": {
      "CIT": {
        "*": "CollegeList[]"
      },
      "*": "CollegeList[]"
    }
  }
]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66316002

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档