我想要一个条件转换,如果输入中特定字段的值与我的条件匹配,我需要在输出中添加一个属性。以下是我需要的输入和输出。
输入
{
"attr": [
{
"name": "first",
"validations": [
{
"type": "Required",
"value": true
}
]
},
{
"name": "last",
"validations": [
{
"type": "lenght",
"value": "10"
}
]
},
{
"name": "email",
"validations": [
{
"type": "min",
"value": 10
}
]
}
]
}
输出
{
"out" : [
{
"name" : "first",
"required" : "yes"
},{
"name" : "last"
},{
"name" : "email"
}
]
}

所以我能够直到病情,但在内部条件,&和@分别对应于输入而不是输出。任何人都可以帮助我完成转型。以下是我到目前为止所写的规范。
[
{
"operation": "shift",
"spec": {
"attr": {
"*": {
"name": "out.&1.name",
"validations": {
"*": {
"type": {
"Required": {
"@(2,value)": "out.&1.req"
}
}
}
}
}
}
}
}
]

答案 0 :(得分:2)
此规范执行转换。
[
{
"operation": "shift",
"spec": {
"attr": {
"*": {
"name": "out[&1].name",
"validations": {
"*": {
"type": {
"Required": {
"#yes": "out[&5].required"
}
}
}
}
}
}
}
}
]
但是,我认为你的意思是抓住“值”:这是“必需”的兄弟:是的,而不是输出为“是”。
如果这样交换这个位。
"Required": {
"@(2,value)": "out[&5].required"
}