我想检查一个条件,并根据类型,想检查另一个条件。 对于 BookingType:3,如果输入中提供 TrackingList,则输出应具有标志“TrackingAvailable”:“Y”。对于所有其他预订类型,我们不应显示此标志。
到目前为止,我可以检查 TrackingList 在输入中是否可用并显示 TrackingAvailable 标志。
但是,我无法弄清楚如何为 BookingType 添加另一个条件
示例输入、震动规格和输出如下。我们需要更新 jolt 规范以添加 BookingType 条件,以便仅针对 BookingType:3 显示 TrackingAvailable
输入
{
"Booking": [
{
"BookingLines": {
"BookingLine": [
{
"Metadata": {
"TrackingList": {
"Tracking": [
{
"TrackingNumber": "1232131231"
}
]
}
}
}
]
},
"BookingType": "1"
}
]
}
震动规格
[
{
"operation": "modify-default-beta",
"spec": {
"Booking": {
"*": {
"*": "Booking[&1].&",
"BookingLines": {
"BookingLine": {
"*": {
"Metadata": {
"TrackingList": {
"Tracking": "null"
}
}
}
}
}
}
}
}
},
{
"operation": "shift",
"spec": {
"Booking": {
"*": {
"BookingLines": {
"BookingLine": "Booking[&2].BookingLines.BookingLine"
}
}
}
}
}
,
{
"operation": "shift",
"spec": {
"Booking": {
"*": {
"*": "Booking[&1].&",
"BookingLines": {
"BookingLine": {
"*": {
"Metadata": {
"TrackingList": {
"Tracking": {
"null": {
"#N": "Booking[&8].BookingLines.BookingLine[&5].Metadata.TrackingAvailable"
},
"*": {
"#Y": "Booking[&8].BookingLines.BookingLine[&5].Metadata.TrackingAvailable"
}
}
}
}
}
}
}
}
}
}
}
]
输出
{
"Booking": [
{
"BookingLines": {
"BookingLine": [
{
"Metadata": {
"TrackingAvailable": "Y"
}
}
]
}
}
]
}
这对你有用吗?
[
{
"operation": "modify-default-beta",
"spec": {
"Booking": {
"*": {
"*": "Booking[&1].&",
"BookingLines": {
"BookingLine": {
"*": {
"Metadata": {
"TrackingList": {
"Tracking": "null"
}
}
}
}
}
}
}
}
},
{
"operation": "shift",
"spec": {
"Booking": {
"*": {
"BookingLines": {
"BookingLine": "Booking[&2].BookingLines.BookingLine"
},
"*": "&2[&1].&"
}
}
}
}
,
{
"operation": "shift",
"spec": {
"Booking": {
"*": {
"*": "Booking[&1].&",
"BookingType": {
"@": "Booking[&2].&1",
"3": {
"@(2,BookingLines)": {
"BookingLine": {
"*": {
"Metadata": {
"TrackingList": {
"Tracking": {
"null": {
"#N": "Booking[&10].BookingLines.BookingLine[&5].Metadata.TrackingAvailable"
},
"*": {
"#Y": "Booking[&10].BookingLines.BookingLine[&5].Metadata.TrackingAvailable"
}
}
}
}
}
}
}
}
}
}
}
}
}
]