0

我试图将一个键值对映射到一个数组,使用 jolt transform spec 将每个值区分为一种类型

输入json

{
"testurl": "someurl",
"website": "someurl2"
}

试过这个规格

[
  {
    "operation": "shift",
    "spec": {
      "testurl": "Urls[].testurl",
      "website": "Urls[].website"
    }
  },
  {
    "operation": "shift",
    "spec": {
      "Urls": {
        "*": {
          "$": "Urls[&1].val"    
        }
      }
    }
  }
]

预期的结果是这样的

{
        "Urls": [{
            "url": "someurl",
            "val": "testurl"
        }, {
            "url": "someurl2",
            "val": "website"

        }]
    }
4

1 回答 1

3

是的,您可以将一组 Json 键值对转换为数组。

它需要2班才能安全。

第一班将您要转换为数组的所有属性隔离开来。

第二班可以使用“*”来匹配所有这些项目并将它们放置在一个数组中。

规格

[
  {
    "operation": "shift",
    "spec": {
      "testurl": "temp.testurl",
      "website": "temp.website"
    }
  },
  {
    "operation": "shift",
    "spec": {
      "temp": {
        "*": {
          "$": "Urls[#2].val",
          "@": "Urls[#2].url"
        }
      }
    }
  }
]
于 2017-01-22T19:16:51.127 回答