如何使用JOLT规范删除父级并修改输入JSON字段?

问题描述

我必须删除_id字段,在$ date前面加上date并从输入的JSON中删除JSON。任何人都可以使用JOLT规范来帮助实现这一目标吗?

输入:

{
   "JSON":{
      "_id":{
         "oid":"5f9122213f077e24b639d084"
      },"name":"Mongodb","age":"98","ttlTime":{
         "date":1536165487000
      }
   }
}

预期输出

{
   "name":"Mongodb","ttlTime":{
      "$date":1536165487000
   }
}

我正在使用以下规格,但未获得所需的输出。 JOLT规范:

[
   {
      "operation":"remove","spec":{
         "JSON":{
            "_id":""
         }
      }
   },{
      "operation":"shift","spec":{
         "JSON":{
            "ttlTime":{
               "date":"ttlTime.\\$date"
            }
         },"*":"&","JSON":""
      }
   }
]

解决方法

查看此规范

[
  {
    "operation": "shift","spec": {
      "JSON": {
        "name": "name","age": "age","ttlTime": {
          "date": "ttlTime.\\$date"
        }
      }
    }
  }
]