29 पॉइंट द्वारा GN⁺ 2024-12-12 | 3 टिप्पणियां | WhatsApp पर शेयर करें
  • jq JSON डेटा को संभालने के लिए एक command-line टूल है, जो ज़्यादातर Linux distributions में डिफ़ॉल्ट रूप से इंस्टॉल होता है
  • यह JSON डेटा को readable format में print करने (pretty print) या filters का उपयोग करके डेटा को transform करने में उपयोगी है
  • यह इतना शक्तिशाली है कि डेवलपर्स के लिए ज़रूर सीखने लायक 5 CLI tools में शामिल किया जा सकता है, और JSON डेटा से जुड़े कई तरह के कामों को आसान बना देता है

jq इंस्टॉलेशन और बुनियादी उपयोग

  • इंस्टॉलेशन का तरीका

    • jq को ज़्यादातर package managers से इंस्टॉल किया जा सकता है, या binary सीधे डाउनलोड करके या source से build करके भी इस्तेमाल किया जा सकता है
    • इंस्टॉल के बाद jq कमांड चलाकर यह जांचा जा सकता है कि यह सही से काम कर रहा है
  • बुनियादी उपयोग का उदाहरण

  • JSON filter उदाहरण

    • किसी खास शर्त से मेल खाने वाला डेटा filter करना:
      curl 'https://jsonplaceholder.typicode.com/users' | jq \  
      '.[] | select(.address.city == "South Christy") | {name, username, email}'  
      

jq की मुख्य विशेषताएँ

बुनियादी filters

  • Identity filter

    • इनपुट डेटा को बिना बदले output करना:
      echo '{"id":1,"name":"Leanne Graham","website":"hildegard.org"}' | jq '.'  
      
  • किसी खास field तक पहुँचना

array प्रोसेसिंग

नया JSON बनाना

  • नया object बनाना

    • चुनी गई fields से नया JSON object बनाना:
      curl 'https://jsonplaceholder.typicode.com/users/1' | jq \  
      '{"name": .name, "email": .email, "company": .company.name}'  
      
  • नया array बनाना

jq की उन्नत विशेषताएँ

functions का उपयोग

डेटा चुनना

  • शर्त के अनुसार डेटा चुनना
    • किसी खास शर्त को पूरा करने वाला डेटा filter करना:
      curl 'https://jsonplaceholder.typicode.com/users' | jq \  
      '.[] | select(.address.city == "South Christy")'  
      

JSON रूपांतरण और उपयोग

  • उन्नत JSON रूपांतरण

    • डेटा को group करना या statistics निकालने वाले filters:
      curl 'https://jsonplaceholder.typicode.com/users' | jq \  
      'group_by(.address.city) |  
      map({  
        city: .[0].address.city,  
        user_count: length,  
        users: [.[] | {name: .name, username: .username}]  
      })'  
      
  • बड़े JSON को संभालना

  • jq Playground में अभ्यास करके देखा जा सकता है

3 टिप्पणियां

 
greenhead 2024-12-12

सारांश के लिए धन्यवाद! वाकई बहुत काम की जानकारी है।

 
greenhead 2024-12-12

> इतना शक्तिशाली है कि इसे उन 5 CLI tools में शामिल किया जा सकता है जिन्हें developers को ज़रूर सीखना चाहिए,

लेकिन अब यह भी जानने की जिज्ञासा हो रही है कि बाकी 4 CLI tools कौन-से हैं; लेख में उनका ज़िक्र नहीं है, इसलिए वह बात MacGuffin बन गई लगती है..

 
ycs1m1yk 2024-12-12

https://navendu.me/posts/jq-interactive-guide/….

मूल लेख देखने पर
> jq is on every “five command line tools to learn as a developer” video on YouTube.
जैसी पंक्ति दिखती है।

बाकी 4 कौन-से हैं, यह खास तौर पर नहीं बताया गया है; लगता है इस तरह के CLI tool recommendation वीडियो में इसका ज़िक्र हमेशा होता है, हाहा।