2 votes

Cadre du robot : Comment accéder à une clé et une valeur imbriquées à partir d'une réponse json ?

J'ai reçu le json suivant comme réponse :

{'statusCode': 200, 'Status': 'Success', 'GroupId': None, 'ActivityId': '8234560b-05d8-49a3-92c5-0ae6cea3ff80', 'MessageId': '3c326bb3-9798-4310-b95f-30135441090f', 'MessageType': 2, 'Payload': {'Result': {'Vid': {'Data': [{'label': 'lb1', 'Value': 1, 'Timestamp': '2020-09-01T09:31:30Z'}, {'label': 'lb2', 'Value': 2, 'Timestamp': '2020-09-01T09:31:30Z'}]}}}, 'Priority': 1, 'Time': '2020-09-01T09:37:17.8509538+00:00'}

J'ai extrait "ActivityId" comme suit :

${response['ActivityId']}

Mais comment puis-je extraire la "valeur" du tableau "Data" où le "label" est "lb1" ? j'ai essayé ceci

${response['Payload']['Result']['Vid']['Data[?(@']['label=='lb1')]']['Value']}

a obtenu une erreur de syntaxe.

1voto

Dev Points 2296

Utiliser le filtre script expression de jsonpath ?() pour boucler les noeuds du tableau sur une base conditionnelle.

 ${value}=     Get Value From Json     ${json_object}      $.Payload.Result.Vid.Data[?(@.label=='lb1')].Value
 log to console   ${value}

Remarque : mettez la chaîne après == entre guillemets simples et n'ajoutez pas d'espace entre l'expression jsonpath.

Pour plus de détails sur l'expression du chemin en json, consultez le site suivant JSONLibrary

Sortie -

enter image description here

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X