Java 我如何使用博尔特使用Json进行转换?

Java 我如何使用博尔特使用Json进行转换?,java,json,jolt,Java,Json,Jolt,我必须将一个JSON转换为另一个JSON, 我是新来的jolt。如果您在java中有任何其他方法,请告诉我。 输入可以以嵌套方式具有许多其他属性。 我必须编写能够使用JSON中所有字段的通用代码,并将其转换为我提到的所需输出 输入 期望输出 "MyFieldList": [ { "Footer": "My Footer", "fieldList": [ { "label": "id", "fieldName": "id",

我必须将一个JSON转换为另一个JSON, 我是新来的jolt。如果您在java中有任何其他方法,请告诉我。 输入可以以嵌套方式具有许多其他属性。 我必须编写能够使用JSON中所有字段的通用代码,并将其转换为我提到的所需输出

输入

期望输出

  "MyFieldList": [
  {
    "Footer": "My Footer",
    "fieldList": [
      {
        "label": "id",
        "fieldName": "id",
        "fieldValue": "123456789",
        "editable": false, 
        "dataType": "STRING"
      },
      {
        "label": "OrderType",
        "fieldName": "OrderType",
        "fieldValue": "ABC",
        "editable": false, 
        "dataType": "STRING"
      },
      {
        "label": "Pluto",
        "fieldName": "Pluto",
        "fieldValue": "Charon",
        "editable": false, 
        "dataType": "STRING"
      },
      {
        "label": "Earth",
        "fieldName": "Earth",
        "fieldValue": "Moon",
        "editable": false, 
        "dataType": "STRING"
      }]
  }
  ]
我尝试过使用这个震动规范,但是,我不知道嵌套部分如何展平它

 {
"operation": "shift",
"spec": {
    "*": {
      "$": "[#2].fieldName",
      "@": "[#2].fieldValue",
      "#false": "[#2].editable",
      "# ": "[#2].Size",
      "#STRING": "[#2].dataType"
    }
  }
 }

重要的部分是在转入fieldList之前创建一个数组数组:


爪哇!=抱歉修改了标签。
 {
"operation": "shift",
"spec": {
    "*": {
      "$": "[#2].fieldName",
      "@": "[#2].fieldValue",
      "#false": "[#2].editable",
      "# ": "[#2].Size",
      "#STRING": "[#2].dataType"
    }
  }
 }
[
  {
    "operation": "shift",
    "spec": {
      "id": {
        "$": "[#1].[#1].fieldName",
        "@": "[#1].[#1].fieldValue",
        "#false": "[#1].[#1].editable",
        "#STRING": "[#1].[#1].dataType"
      },
      "OrderType": {
        "$": "[#2].[#1].fieldName",
        "@": "[#2].[#1].fieldValue",
        "#false": "[#2].[#1].editable",
        "#STRING": "[#2].[#1].dataType"
      },
      "Abc": {
        "*": {
          "Name": "[#3].[&1].fieldName",
          "Value": "[#3].[&1].fieldValue",
          "#false": "[#3].[&1].editable",
          "#STRING": "[#3].[&1].dataType"
        }
      }
    }
 },
  {
    "operation": "shift",
    "spec": {
      "*": {
        "*": "MyFieldList.fieldList.[]"
      }
    }
  },
  {
    "operation": "default",
    "spec": {
      "MyFieldList": {
        "Footer": "My Footer"
      }
    }
  }
]