bazaarvoice / jolt

JSON to JSON transformation library written in Java.
Apache License 2.0
1.54k stars 328 forks source link

json convert jsonArray output No default value #1157

Closed rjzhus closed 2 years ago

rjzhus commented 2 years ago

input

{
  "orderId": 1212,
  "orderNo":"202223434343",
  "goods": {
    "goodsId": 123,
    "goodsName": "test_goods"
  },
  "orderItem": [
    {
      "orderItemId": "132",
      "order_item_no": "456"
    },
    {
      "orderItemId": "789"
    }
  ]

sect

[{
  "operation": "shift",
  "spec": {
    "orderId": "data.order_id",
    "orderNo": "data.order_no",
    "orderItem": {
      " * ": {
        "orderItemId": "data.order_item.[#2].order_item_id",
        "orderItemNo": "data.order_item.[#2].order_item_no"
      }
    }
  }
},
  {
    "operation": "default",
    "spec": {
      "Range": 5,
      "data": {
        "default": 12345,
        "order_item": {
          "*":{
            "order_item_id":"",
            "order_item_no":""
          }
        }
      }
    }
  }
]

want output

{
  "data": {
    "order_id": 1212,
    "order_no": "202223434343",
    "order_item": [
      {
        "order_item_id": "132",
        "order_item_no": "456"
      },
      {
        "order_item_id": "789",
        "order_item_no": ""
      }
    ],
    "default": 12345
  },
  "Range": 5
}

Actual output

{
    "data": {
        "order_id": 1212,
        "order_no": "202223434343",
        "order_item": [
            {
                "order_item_id": "132",
                "order_item_no": "456"
            },
            {
                "order_item_id": "789"
            }
        ],
        "default": 12345
    },
    "Range": 5
}

Actual output field “order_item_no ” No default value

rjzhus commented 2 years ago

modify-default-beta