用条件映射输入字段



我想做一些震动,我只需要映射一个输入到输出。

感谢任何帮助或建议。

  • 如果topicA.ownertopicZ.owner当前输出owner.name应该映射到topicZ.owner

  • 如果<<li>strong> topicA.owner 只有这样,输出owner.name应该映射到topicA.owner

    如果<<li>strong> topicZ.owner 只有这样,输出owner.name应该映射到topicZ.owner

    输入:

{
"topicA": {
"owner": "topic_a_owner"
},
"topicZ": {
"owner": "topic_z_owner"
}
}

震动:

[
{
"spec": {
"*": {
"ta": "@(2,topicA.owner)",
"za": "@(2,topicZ.owner)"
}
},
"operation": "modify-default-beta"
},
{
"operation": "shift",
"spec": {
"topicA": {
"ta": "owner.name"
},
"topicZ": {
"za": "owner.name"
}
}
}
]

预期输出:

{
"owner" : {
"name" : "topic_z_owner"
}
}

您提到的3个条件可以简化为2个条件,如下所示:

如果<<ul>
  • strong> topicZ.owner (无论是否topicA.owner),则输出owner.name应该映射到topicZ.owner(这将合并您的第一个和第三个条件)
  • 如果<<li> strong> topicA.owner 输出owner.name

    应该映射到topicA.owner基于此,您可以执行以下操作:

    1. topicZ.owner不存在时,使用modify-default-beta操作将topicA.owner的值复制到topicZ.owner字段
    2. 使用shift操作将输出topicZ.owner字段的值映射到owner.name字段。
    [
    {
    "spec": {
    "topicZ": {
    "owner": "@(2,topicA.owner)"
    }
    },
    "operation": "modify-default-beta"
    },
    {
    "operation": "shift",
    "spec": {
    "topicZ": {
    "owner": "owner.name"
    }
    }
    }
    ]
    

    最新更新