मेरे पास एक Ansible कार्य है जो JSON प्रतिक्रिया प्राप्त करने के लिए एक वेबसाइट पर एक URI अनुरोध करता है। मैं चाहता हूं कि अगर कोई नस्टेड JSON वैरिएबल परिभाषित है, और ऐसा नहीं है, तो वह कुछ कर सकता है।
- name: Get JSON from the Interwebs
uri: url="http://whatever.com/jsonresponse" return_content=yes
register: json_response
- name: Write nested JSON variable to disk
copy: content={{json_response.json.nested1.nested2}} dest="/tmp/foo.txt"
ध्यान दें कि ignore_errorsकेवल टास्क की कमांड फेल होने के लिए काम करता है, न कि जिन्जा टेम्प्लेट के भीतर नेस्टेड डेटा स्ट्रक्चर्स में अपरिभाषित मानों की जांच के लिए। इसलिए यदि json_response.json.nested1.nested2इसे परिभाषित नहीं किया गया है, तो यह कार्य ignore_errors=yesसेट होने के बावजूद भी विफल रहेगा ।
/tmp/foo.txtयदि अनुरोध विफल रहता है, या यदि अनुरोध में सही नेस्टेड मान नहीं है, तो मुझे कुछ डिफ़ॉल्ट मान संग्रहीत करने के लिए यह प्लेबुक कैसे मिलेगी ?
$keyप्रतिक्रिया में कोई क्षेत्र नहीं होता है - अर्थात कुछ जिंजा केdefaultफ़िल्टर के लिए उपयोगी हो सकता है।