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

Jolt为两个siftr操作将json转换为json

姬墨竹
2023-03-14

我正在尝试将输入 json 的值映射到输出 json 的哈希映射,并且还想使用 jolt json 转换将该值保存到另一个键

输入json:

{
  "metadata": "/a=value1/b=value2/c=value3"
}

规格:

 [{
            "operation": "shift",
            "spec": {
              "metadata": {
                // match exactly sets of key value pairs
                "/*/*/*": {
                  // pull each one off and accumulate them into a temp array
                  "$(0,1)": "temp[]",
                  "$(0,2)": "temp[]",
                  "$(0,3)": "temp[]"
                }
              }
            }
          },
          {
            "operation": "shift",
            "spec": {
              "temp": {
                "*": {
                  // match each item by ":" into two captures
                  "*=*": {
                    "$(0,2)": "data.&(1,1)"
                  }
                }
              }
            }
            }

        ]

输出

 {
          "data" : {
            "a" : "value1",
            "b" : "value2",
            "c" : "value3"
          }
        }    

而我还想将字符串元数据映射到原始数据预期输出:

{
  "data" : {
    "a" : "value1",
    "b" : "value2",
    "c" : "value3"
  },
  "originalData":"/a=value1/b=value2/c=value3"
}

共有2个答案

阎承
2023-03-14
 [
      {
        "operation": "modify-overwrite-beta",
        "spec": {
          "metadata": "=split('/',@(1,metadata))"
        }
      },
      {
        "operation": "shift",
        "spec": {
          "metadata": {
            "*": {
              "*=*": {
                "$(0,2)": "data.&(1,1)"
              }
            }
          }
        }
      }
     ]
南宫书
2023-03-14

规范

    [
      {
        "operation": "shift",
        "spec": {
          "metadata": {
            "@": "originalData",
            // match exactly sets of key value pairs
            "/*/*/*": {
              // pull each one off and accumulate them into a temp array
              "$(0,1)": "temp[]",
              "$(0,2)": "temp[]",
              "$(0,3)": "temp[]"
            }
          }
        }
      },
      {
        "operation": "shift",
        "spec": {
          "originalData": "originalData", // passthru
          "temp": {
            "*": {
              // match each item by ":" into two captures
              "*=*": {
                "$(0,2)": "data.&(1,1)"
              }
            }
          }
        }
      }
    ]
 类似资料:
  • 我必须将 JSON 输入转换为包含一个对象的数组。 我有这个 JOLT 配置: 以下是我的意见: 实际产量: 期望的输出: 你知道该怎么做吗? 谢谢你们的帮助

  • 输入 json : 预期输出: 我想有一个颠簸转换,它可以嵌套很少的田地。

  • 我有下面的JSON输入,我想删除值标签并在TypeOfSTA中设置标题值。 我想使用JOLT转换在输出JSON中进行转换。 下面是我的请求JSON和输出JSON。 请求 JSON: 请帮助我使用JOLT转换进行转换。 输出JSON:

  • 问题内容: 我的服务器JSON返回了两种不同类型的DateFormat。“ MMM dd,yyyy”和“ MMM dd,yyyy HH:mm:ss” 当我使用以下内容转换JSON时,就可以了: 但是,当我想要详细的日期格式并将其更改为该格式时,它将引发异常com.google.gson.JsonSyntaxException:2013年3月21日 gson是否可以处理Json转换的两个不同的Dat

  • 我遇到了一个问题,使用颠簸转换将平面 JSON 转换为嵌套 JSON。而且我对颠簸转型很陌生。输入和输出详细信息如下。 我的输入: 预期产量

  • 我只需要使属性元素与 id 处于同一级别。 我只是有一个问题,以复制属性是在同一水平。 这是我的示例JSON 这是我的示例转换。 期望的输出将是