-1
ANSIBLEを使用:urlからjson応答を取得していますが、応答をプルーニングしていますが、特定のキー/値を印刷できません。 (jsonの応答を参照してください)私のスクリプトで私はサービスを渡すだろう、私はタグの下でのみサービスの特定のバージョンだけを印刷したい。たとえば、私はabcをパラメータとして渡して、それからそのタグの下にバージョンを印刷したいと思います。私はjsonクエリフィルタを試みたが、これを得ることができませんでした。jsonからの応答uri - どのようにjsonのキーと値を抽出し、不可能なjsonクエリフィルタを使用してそれらを検証するのですか?
- name: Get url response
uri:
url: http://localhost:8500/myurl...
return_content: yes
register: json_response
- name: print json_response
debug:
var: json_response
- name: print the response
set_fact:
msg: "{{ json_response | from_json| json_query('Tags['build=*')}}"
私のjson応答はこのようになります。
"json": {
"abc": {
"Tags": [
"version=3.5"
]
},
"xyz": {
"Tags": [
"version=4.6.2"
]
},
"asd": {
"Tags": [
"version=9.1.2"
]
}
}
ご協力いただければ幸いです。コメントから
私はhttps://serverfault.com/questions/722852/how-to-check-the-json-response-from-a-uri-request-with-ansibleは役に立ち – Vij
唯一の事についてのかもしれないと思いますここでは 'json_response.json'に' json_query'フィルタを適用する必要があります。 JMESPathの表現については、http://jmespath.org/で表現を理解するのに時間を費やしてください。 –
@ ConstantinSuvorovありがとうございます。このリンクhttp://jmespath.org/tutorial.htmlは非常に役に立ちます。今私は正確な値に到達することができます。 – ryan1506