【问题标题】:How can I move top level object to array property using JOLT transformation如何使用 JOLT 转换将顶级对象移动到数组属性
【发布时间】:2019-03-07 01:14:35
【问题描述】:

有没有办法在具有顶级对象值的数组项中添加额外的属性? 我的输入就像

{
  "ABC": {
    "news": [{
        "datetime": "2019-03-06T14:12:00-05:00",
        "source": "source 1",
        "summary": "asd ada dsd f ef sdf vert"
      }
    ]
  },
  "XYZ": {
    "news": [{
        "datetime": "2019-03-06T14:12:00-05:00",
        "source": "source 1",
        "summary": "asd ada dsd f ef sdf vert"
      }
    ]
  }
}

预期输出是

"news": [{
    "symbol": "ABC",
    "datetime": "2019-03-06T14:12:00-05:00",
    "source": "source 1",
    "summary": "asd ada dsd f ef sdf vert"
  },
  {
    "symbol": "XYZ",
    "datetime": "2019-03-06T14:12:00-05:00",
    "source": "source 1",
    "summary": "asd ada dsd f ef sdf vert"
  }
]

通过使用以下规范,我可以合并两个数组,但我很难在项目中添加符号。

[{
  "operation": "shift",
  "spec": {
    "*": {
      "news": {
        "*": ""
      }
    }
  }
}]

【问题讨论】:

    标签: json jolt


    【解决方案1】:

    我设法使用 2 个班次规则来做到这一点。首先,我将符号名称提取到一个数组并合并新闻列表,然后我将符号元素推送到新闻项中(使用正确的数组索引位置):

     [{
         "operation": "shift",
         "spec": {
           "*": {
             "$": "symbol",
             "news": {
               "*": "news"
             }
           }
         }
    }, {
         "operation": "shift",
         "spec": {
           "news": {
             "*": {
               "@(3,symbol[&])": "news[&1].symbol",
               "*": "news[&1].&"
             }
           }
         }
    }
     ]
    

    看看这是不是你要找的。 干杯

    【讨论】:

      猜你喜欢
      • 2022-11-24
      • 2017-09-20
      • 1970-01-01
      • 2023-01-19
      • 2022-11-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-06
      相关资源
      最近更新 更多