Json从键值转换为嵌套数组

时间:2017-01-21 05:43:14

标签: json jolt

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

输入json

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

尝试了这个规范

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

预期结果是这样的

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

1 个答案:

答案 0 :(得分:3)

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

需要2班才能安全。

第一班将所有想要变成数组的属性隔离开来。

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

规格

[
  {
    "operation": "shift",
    "spec": {
      "testurl": "temp.testurl",
      "website": "temp.website"
    }
  },
  {
    "operation": "shift",
    "spec": {
      "temp": {
        "*": {
          "$": "Urls[#2].val",
          "@": "Urls[#2].url"
        }
      }
    }
  }
]