Jolt:如果布尔值为真,则有条件放置值

Jolt: Conditional placing value if boolean is true

我有这种情况,如果 defaultshipping 为真,phone 应该放入 shippingAddressBook->phone(与计费相同)。我的转换很接近,但问题是它没有获取“phone”的值。

有人可以帮我解决这个问题吗:)

输入:

{
  "phone": "869-947-4444",
  "defaultshipping": false,
  "defaultbilling": true
}

预期输出:

{
  "billingAddressBook" : {
    "phone" : "869-947-4444"
  }
}

我的转型尝试:

[
  {
    "operation": "shift",
    "spec": {
      "defaultbilling": {
        "true": {
          "#phone": "billingAddressBook.phone"
        }
      },
      "defaultshipping": {
        "true": {
          "#phone": "shippingAddressBook.phone"
        }
      }
    }
  }
]

是的,你已经很接近了,只需要升2级就可以达到phone的水平,并通过使用@(2,phone)来获取价值,例如

[
  {
    "operation": "shift",
    "spec": {
      "defaultbilling": {
        "true": {
          "@(2,phone)": "billingAddressBook.phone"
        }
      },
      "defaultshipping": {
        "true": {
          "@(2,phone)": "shippingAddressBook.phone"
        }
      }
    }
  }
]