json Jolt阵列变换

iaqfqrcu  于 2023-03-04  发布在  其他
关注(0)|答案(1)|浏览(124)

我的输入json就像

{
  "primary": 5,
  "quality": 4,
  "design": 5
}

并且输出应该

{
  "Ratings": [
    {
      "Name": "primary",
      "Value": 5
    },
    {
      "Name": "quality",
      "Value": 4
    }
  ]
}

也就是说,我不希望input中的所有字段都在数组中。
有没有人能建议如何使用震动来做到这一点。。提前感谢。

q9rjltbz

q9rjltbz1#

x1c 0d1x您可以使用以下shift转换规范

[
  {
    "operation": "shift",
    "spec": {
      "p*|q*": { // the attributes whose keys start with p or q
        "$": "Ratings[#2].Name", // array-wise loop through the generated indexes of the attributes after traversing two levels( `:` and `{` ) for the tree path 
        "@": "Ratings[#2].Value"
      }
    }
  }
]

其中**$通配符表示keys@通配符表示values
http://jolt-demo.appspot.com/站点上的
演示**是

编辑:对于新提出的情况,您可以调整规范,如下所示

[
  {
    "operation": "shift",
    "spec": {
      "p*|q*": { 
        "$": "Ratings[#2].Name", 
        "@": "Ratings[#2].Value",
        "@1,ip": "ip" // call attribute from the inside of the object
      }
    }
  },
  {
    "operation": "cardinality",
    "spec": {
      "Ratings": "MANY",
      "*": "ONE"
    }
  }
]

为了防止获得冗余的X1 M2 N1 X组件

相关问题