当前位置: 首页 > 知识库问答 >
问题:

Jolt - 如何将两个数组转换为键值并保留其他单打属性

严阳成
2023-03-14

我有一个JSON,它包含两个数组,我需要将它们转换为键/值对。数组上的这些键是动态的,可以更改。

为此,我尝试创建一个Jolt规范,将我的输入数据转换为以下格式。

JSON输入:

{
  "data": [
    {
      "property1": "AA",
      "property2": "BB",
      "keys": [
        "key1",
        "key2",
        "key3"
      ],
      "values": [
        "value1",
        "value2",
        "value3"
      ]
    },
    {
      "property1": "CC",
      "property2": "DD",
      "keys": [
        "key4",
        "key5"
      ],
      "values": [
        "value4",
        "value5"
      ]
    }
  ]
}

期望输出:

[
  {
    "property1": "AA",
    "property2": "BB",
    "key1": "value1",
    "key2": "value2",
    "key3": "value3"
  },
  {
    "property1": "CC",
    "property2": "DD",
    "key4": "value4",
    "key5": "value5"
  }
]

我的规格:

[
  {
    "operation": "shift",
    "spec": {
      "data": {
        "*": {
          "values": {
            "*": {
              "@": "[&3].@(3,keys[&1])"
            }
          }
        }
      }
    }
 }
]

我的规格输出:

json prettyprint-override">[
  {
    "key1": "value1",
    "key2": "value2",
    "key3": "value3"
  },
  {
    "key4": "value4",
    "key5": "value5"
  }
]

但是我不能正确地在所需的输出中包含简单的属性(属性1和属性2)。

提前致谢

共有1个答案

巫马令
2023-03-14
[
  {
    "operation": "shift",
    "spec": {
      "data": {
        "*": {
          "property1": "[&1].property1",
          "property2": "[&1].property2",
          "values": {
            "*": {
              "@": "[&3].@(3,keys[&1])"
            }
          }
        }
      }
    }
 }
]

实际上,您已经将动态元素很好地分组到了键-值对中,但是您错过了property1和property2字段到输出中的位置映射。

 类似资料:
  • 如何在Jolt转换JSON数组中保留其他字段,我正在尝试使用通配符,但在最终输出中没有添加字段? 这是我正在使用的输入示例 我使用了下面的Jolt转换,并尝试了通配符: 下面是我的预期输出,其中发生了移位操作,然后需要保持所有其他字段不变 即将到来的实际输出:

  • 我必须将 JSON 输入转换为包含一个对象的数组。 我有这个 JOLT 配置: 以下是我的意见: 实际产量: 期望的输出: 你知道该怎么做吗? 谢谢你们的帮助

  • 我正在尝试编写一个规范来使用jolt转换进行以下转换。我需要通过保持空值将平面JSON转换为嵌套JSON。我附加了输入、预期输出和jolt转换。我需要在输出中保留空值,但在jolt转换后不会显示在输出中。我的jolt转换没有得到确切的输出。 我在将平面JSON转换为嵌套JSON时遇到了一些问题。我看了一些例子,但没有更进一步了解上面提到的内容。我需要通过使用JOLT规范来转换JSON结构。我用ht

  • 我需要使用jolt spec在JSON中将(多个)键转换为值,将值转换为键。做这件事的正确规范应该是什么? 输入: 所需输出:

  • 编辑:键名称是动态的和未知的。 我想获取一个对象,并创建一个字符串数组,将每个键和值连接在一起。 我的键包含下划线,我需要摆脱(我有这部分工作)。我正在努力弄清楚下一步将所有内容连接在一起。(我想我错过了如何从RHS引用键和值?) 输入: 期望输出: 规格: 电流规格输出:

  • 因为匹配器“*”丢弃简单键值对。我知道我错过了什么。有人帮忙吗?