颠簸变换后 json 个对象的排序

Ordering of json objects after jolt transformation

输入:

{

//The input json object

}

期望输出:

{

"Event1": "Value1",
"Event2": [
            // collection of json objects
          ],

"Event3": {
            //The input json object
          }

}

所以基本上输入 json 进入另一个 json 对象包装器的“Event3”。

这是我的规格:

[
  {
    "operation": "shift",
    "spec": {
      "@": "Event3"
    }
  },
  {
    "operation": "default",
    "spec": {
      "Event1": "Value1",
      "Event2": [
        // some objects
       ]
    }
  }
]

现在的问题是 - 上面的规范正在进行转换,但是对象的顺序被打乱了,像这样:

{
"Event3": {
            //The input json object
          },
          
"Event2": [
            // some objects
          ],
"Event1": "Value1"

}

请建议我应该如何解决这个问题。

您是否尝试过使用 排序 操作?

[
  {
    "operation": "sort",
    "spec": {
      "*": ""
    }
  }
]

认为这可能对您有用 ;)

尝试在最后使用另一个 shift 操作,使它们按所需的顺序排列。

[
  {
    "operation": "shift",
    "spec": {
      "@": "Event3"
    }
    },
  {
    "operation": "default",
    "spec": {
      "Event1": "Value1",
      "Event2": [
        "ob1", "obj2"
        ]
    }
    },
  {
    "operation": "shift",
    "spec": {
      "Event1": "Event1",
      "Event2": "Event2",
      "Event3": "Event3"
    }
    }
]

添加另一个移位操作,只需将每个字段从输入 json 复制粘贴到输出 json。

[
  {
    "operation": "shift",
    "spec": {
      "@": "Event3"
    }
    },
  {
    "operation": "default",
    "spec": {
      "Event1": "Value1",
      "Event2": [
        "ob1", "obj2"
        ]
    }
    },
  {
    "operation": "shift",
    "spec": {
      "Event1": "&", //same as "Event1":"Event1",
      "Event2": "&",
      "Event3": "&"
    }
    }
]