2016-04-21 2 views
3

Je veux une transformation conditionnelle où j'ai besoin d'ajouter une propriété en sortie si la valeur d'un champ spécifique en entrée correspond à ma condition. Ci-dessous, mes entrées et sorties sont requises.Jolt conditionnel spec


entrée

{ 
    "attr": [ 
     { 
      "name": "first", 
      "validations": [ 
       { 
        "type": "Required", 
        "value": true 
       } 
      ] 
     }, 
     { 
      "name": "last", 
      "validations": [ 
       { 
        "type": "lenght", 
        "value": "10" 
       } 
      ] 
     }, 
     { 
      "name": "email", 
      "validations": [ 
       { 
        "type": "min", 
        "value": 10 
       } 
      ] 
     } 
    ] 
} 

sortie

{ 
 
    "out" : [ 
 
    { 
 
     "name" : "first", 
 
     "required" : "yes" 
 
    },{ 
 
     "name" : "last" 
 
    },{ 
 
     "name" : "email" 
 
    } 
 
    ] 
 
}

Donc, je suis en mesure d'obtenir jusqu'à la condition, mais à l'intérieur, & et @ sont respectif à l'entrée plutôt qu'à la sortie. Quelqu'un peut-il m'aider avec la transformation. Voici la spécification que j'ai écrite jusqu'ici.

[ 
 
    { 
 
    "operation": "shift", 
 
    "spec": { 
 
     "attr": { 
 
     "*": { 
 
      "name": "out.&1.name", 
 
      "validations": { 
 
      "*": { 
 
       "type": { 
 
       "Required": { 
 
        "@(2,value)": "out.&1.req" 
 
       } 
 
       } 
 
      } 
 
      } 
 
     } 
 
     } 
 
    } 
 
    } 
 
]

Répondre

2

Cette spécification ne la transformée.

[ { "operation": "shift", "spec": { "attr": { "*": { "name": "out[&1].name", "validations": { "*": { "type": { "Required": { "#yes": "out[&5].required" } } } } } } } } ]

Cependant, je pense que vous vouliez dire de saisir la « valeur »: true qui est un frère du « nécessaire »: vrai, plutôt que d'avoir la sortie « oui ».

Si oui, permutez ce bit. "Required": { "@(2,value)": "out[&5].required" }

+0

Merci beaucoup. Ça a marché. Mais je ne suis pas capable de comprendre l'utilisation de & 5. Pouvez-vous expliquer d'où devons-nous traverser l'arbre? – yeswanth