jq - Interaction between {} and select -


यहां मेरा परीक्षण डेटा है:

  [{"id": "id-1" , "टैग": {"key": "name", "value": "name-1"}}, {"id": "id-2"}]  

I 'आउटपुट को सरल बनाने की कोशिश कर रहा हूं, यदि' नाम 'फ़ील्ड मौजूद है तो दिखाने के लिए, और हमेशा आईडी दिखाएगा। उदाहरण के लिए, यह स्क्रिप्ट लगभग काम करती है:

  ~ $ cat testdata | | Jq '। [] | {आईडी}: "id-1", "id-1", "name": "name-1"} {"id": "id-2", "name": null} < / कूट>  

जब मैं 'कीज़' के अनुभाग के लिए मौजूदा .keys के खिलाफ गार्ड को जोड़ने की कोशिश करता हूं और मुझे इसके बारे में परवाह करता हूं, तो यहाँ क्या होता है:

  ~ $ Cat testdata | Jq '। [] | {आईडी, नाम: (चयन करें (.tags.key == "name") | .tags.value)} '{"id": "id-1", "name": "name-1"}  

मुझे लगता है कि {} किसी भी तरह 'शून्य' के बजाय शून्य-लंबाई वाली ऐरे के साथ समाप्त हो रहा है। इसके बजाय मुझे क्या चाहिए? मैं क्या गलतफहमी कर रहा हूं?

मैंने निम्न समस्या का उपयोग कर समाप्त कर दिया: [POSSIBLY_MATCHED_EXPRESSION] [0 ] , इस मामले में:

  बिल्ली जांचडेटा | | Jq '। [] | {Id, name: ([select (.tags.key == "name") | .tags.value] [0])} ' 

Comments

Popular posts from this blog

java - org.apache.http.ProtocolException: Target host is not specified -

java - Gradle dependencies: compile project by relative path -

ruby on rails - Object doesn't support #inspect when used with .include -