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

通过 JOLT 处理器转换键值中的 JSON 数据

秋光熙
2023-03-14

我有以下输入,我想通过 jolt 处理器转换预期输出中的数据

输入

json prettyprint-override">{
  "tenantId": "master",
  "transactionId": "838",
  "alertArray": [
    {
      "alertType": "info",
      "priority": "low",
      "data": "new",
      "properties": [
        {
          "ConnectorID": "1",
          "ConnectorType": "IEC_60309",
          "IDTag": "A5270529",
          "abc": "xyz",
          "pqr": "rst",
          "bals": "ahjdgcd"
        }
      ]
    }
  ]
}

预期产量

{
  "tenantId": "master",
  "transactionId": "838",
  "alertArray": [
    {
      "alertType": "info",
      "priority": "low",
      "data": "new",
      "properties": [
        {
          "key": "ConnectorID",
          "value": "2"
        },
        {
          "key": "ConnectorType",
          "value": "IEC_60309"
        },
        {
          "key": "DTag",
          "value": "A5270529"
        },
        {
          "key": "abc",
          "value": "xyz"
        },
        {
          "key": "pqr",
          "value": "rst"
        },
        {
          "key": "bals",
          "value": "ahjdgcd"
        }
      ]
    }
  ]
}

我们有包含属性的数据,数组包含一对数据,我想把这对数据转换成键和值

共有1个答案

郭琦
2023-03-14

您可以在深入研究properties数组下的属性后使用此移位转换,并使用@ 符号分别匹配val和key对

[
  {
    "operation": "shift",
    "spec": {
      "*": "&",
      "alertA*": {
        "*": {
          "*": "&2[&1].&", //&2 is to substitute "alertArray" after going tree 2 levels up along with its indexes([&1]), and the rightmost & is replicates the current level's values 
          "pro*": {
            "*": {
              "*": {
                "$": "&5[&4].&3[#2].key", // &5 : "alertArray", [&4] : indexes of "alertArray", &3 : "properties", indexes of "properties"
                "@": "&5[&4].&3[#2].value"
              }
            }
          }
        }
      }
    }
  }
]

该网站上的演示http://jolt-demo.appspot.com/是:

 类似资料:
  • 我正在尝试使用 Jolt 转换来转换 Json,在这里寻找一些输入。我正在尝试过滤一个键,该键是另一个属性的值。这是我的输入和预期输出 我看到的输出是 我试过的规格是 但是我没有得到预期的输出。我也尝试了一些其他组合,但未能获得正确的输出。有人能帮忙吗?

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

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

  • 我想转换这个JSON: 对此JSON: 我目前正在使用该规范,但它不适合我: 有人能给出一个规范吗?有没有关于jolt JSON的明确文档 ................................................................................................................................

  • 我想转换我的嵌套json消息,并使用Jolt规范只获取必需的文件- 我的输入JSON: 低于我的规格输出,这不是预期的- 我尝试了很多选择,但国籍不是我预期的输出。请在这里帮助颠簸转换

  • 我想使用JOLT转换做两件事: 过滤名为 myArray 的数组中的元素,以便仅保留具有“v_518”属性的元素 过滤掉除“v_518”和“LFDN”之外的其余元素的所有属性 输入: 期望输出: 到目前为止,我尝试了什么,但没有按预期工作: 我尝试使用http://jolt-demo.appspot.com/#andrewkcarter2中的示例,但我不知道如何做到这一点。