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

输出中也有关键点的Jolt变换

终祯
2023-03-14

下面是输入的JSON:

{
  "statusCode": 200,
  "statusMessage": {
    "Acked-by": {
      "checksum": 3103748203,
      "offset": 0,
      "partition": 3,
      "timestamp": 1648884230874,
      "topic": "ix_ingress_topic"
    }
  }
}

预期输出为:

{
  "$set": {
    "crmKafkaResponse": {
      "statusMessage": {
        "Acked-by": {
          "checksum": 3103748203,
          "offset": 0,
          "partition": 3,
          "timestamp": 1648884230874,
          "topic": "ix_ingress_topic"
        }
      }
    },
    "ingressKafkaResponse": "success"
  }
}

我尝试使用以下jolt规范:

[
  {
    "operation": "shift",
    "spec": {
      "statusMessage": "\\$set.crmKafkaResponse"
    }
  },
  {
    "operation": "default",
    "spec": {
      "$set": {
        "ingressKafkaResponse": "success"
      }
    }
  }
]

我得到以下输出:


{
  "$set" : {
    "crmKafkaResponse" : {
      "Acked-by" : {
        "checksum" : 3103748203,
        "offset" : 0,
        "partition" : 3,
        "timestamp" : 1648884230874,
        "topic" : "ix_ingress_topic"
      }
    },
    "ingressKafkaResponse" : "success"
  }
}

需要帮助才能达到预期产出。我浏览了文档,但想在输出中也获得密钥。在这里尝试了不同的事情:

https://jolt-demo.appspot.com/#listKeys

共有1个答案

壤驷英叡
2023-03-14

只需添加一个 & 符号来表示状态消息到以它开头的行,以便按状态嵌套内部对象(Acked-by)消息也例如

[
  {
    "operation": "shift",
    "spec": {
      "statusMessage": "\\$set.crmKafkaResponse.&"
    }
  },
  {
    "operation": "default",
    "spec": {
      "$set": {
        "ingressKafkaResponse": "success"
      }
    }
  }
]

或者,您可以直接仅使用一个班次转换,例如

[
  {
    "operation": "shift",
    "spec": {
      "statusMessage": "\\$set.crmKafkaResponse.&",
      "#success": "\\$set.ingressKafkaResponse"
    }
  }
]

为了得到相同的结果

 类似资料:
  • 我正在将Jolt应用于NiFi,但没有得到预期的结果。 后果 颠簸 我需要一个只有一级的json

  • 我对震动有点陌生,一直在努力进行正确的转变。任何帮助都很感激。这是我的输入数据: 我的目标是创建一个包含所有条目的数组。对于本例,将有2个条目(长度与)相同。数组(键)和(值)是1:1映射的,即它们应该具有相同的长度。 这是预期的输出:

  • 我想使用JOLT将下面的输入json转换为输出json。这里的主要问题是在列表中,我必须删除一些根键(Param1、Param2、…)会动态不同的字段。我尝试了以下规范,但没有成功。在这种情况下需要帮助。

  • 我目前有点卡住了,我需要使用JOLT转换JSON,但就我而言,我无法获得与我一起工作的数据/结构。 我有以下需要转换的数据集: 预期的结果应该是这样的: 我可能在我想要的结果中犯了一个错误,但基本上,“riskItemAllRisk”部分需要在一个数组中。 我正在进行的JOLT转换是: 为可怕的代码道歉,但这对我来说是第一次。 谢谢。

  • 我在这方面工作了4个多小时,无法通过。我试图做的是在输入焦点区域外敲击时隐藏键盘。不知何故,键盘无法隐藏。 我尝试了StackOverflow上所有可能的答案,但无法找到解决方案。 如果有人指导我解决这个问题,那就太好了。