2017-10-12 5 views
1

Je suis en train d'imprimer ce qui suit:Certaines expressions valident JSON ne fonctionnent pas

* print response.requests[?(@.friendlyId == '#(ORID)')] 

where ORID is: 

* def temp2 = response.teams[?(@.name == '<Name>')].requestedResources[0].resourceRequestFriendlyId 
* def ORID = temp2[0] 

L'expression donne valeur null où, comme si je l'utilise évaluateur JSON, je reçois le JSON correct.

Répondre

1

Seul JavaScript est pris en charge sur le côté droit du mot clé print. Et JsonPath n'est pas supporté.

Je vais mettre à jour la documentation pour clarifier cela.

1

J'utilise ceci et cela ne fonctionne toujours pas * .requests de $ match [? (@. FriendlyId == "OR004962")]. Id == reqId1 Je pense que c'est le côté gauche et jsonpath devrais travail. AM je manque quelque chose? Erreur trace com.intuit.karate.exception.KarateException: Impossible d'analyser le jeton à partir de la position 10. Attendu?, ', 0-9, * à com.intuit.karate.StepDefs.matchNamed (StepDefs.java:554) at com.intuit.karate.StepDefs.matchEquals (StepDefs.java:540)

+0

hmm. pourrait être un bug. pouvez-vous essayer de vous débarrasser des espaces, par exemple. '$ .requests [? (@. friendlyId ==" OR004962 ")]. idel –

+0

J'ai essayé sans espaces aussi. Pas de chance. J'ai même essayé avec 'plutôt que' mais je n'ai pas travaillé.Comme un bug – Kumar112

+0

Si vous pouvez créer un exemple simple qui montre le problème, s'il vous plaît connectez un bug.pendant cela suffit de définir une variable et faire la correspondance en 2 étapes, cela devrait Vous avez peut-être trouvé que le problème est quelque chose que vous faites mal –