का उपयोग कर मौजूदा JSON सरणी में एक नया तत्व जोड़ें मेरे पास एक जेसन फ़ाइल है और मैं उस पर एक नई ऑब्जेक्ट सरणी जोड़ना चाहता हूं। मैं jq कमांड लाइन का उपयोग करने की कोशिश कर रहा हूँ। जैसे-जैसे मैं इंटरनेट पर देख रहा था, यह आदेश ऐसा करना है, न केवल जेसन फ़ाइल में क्वेरी ऑब्जेक्ट्स के लिए। लेकिन मैं यह नहीं समझ सकता कि jq पर ADD कमांड का उपयोग कैसे करें। रिपोर्ट-2017-01-07.json मेरे JSON फ़ाइल है >>jq
{
"report":"1.0",
"data":{
"date":"2010-01-07",
"messages":[
{
"date":"2010-01-07T19:58:42.949Z",
"xml":"xml_samplesheet_2017_01_07_run_09.xml",
"status":"OK",
"message":"metadata loaded into iRODS successfully"
},
{
"date":"2010-01-07T20:22:46.949Z",
"xml":"xml_samplesheet_2017_01_07_run_09.xml",
"status":"NOK",
"message":"metadata duplicated into iRODS"
},
{
"date":"2010-01-07T22:11:55.949Z",
"xml":"xml_samplesheet_2017_01_07_run_09.xml",
"status":"NOK",
"message":"metadata was not validated by XSD schema"
}
]
}
}
मैं नीचे आदेश >> उपयोग कर रहा हूँ
$ cat report-2017-01-07.json | jq -s '.data.messages {"date": "2010-01-07T19:55:99.999Z", "xml": "xml_samplesheet_2017_01_07_run_09.xml", "status": "OKKK", "message": "metadata loaded into iRODS successfullyyyyy"}'
jq: error: syntax error, unexpected '{', expecting $end (Unix shell quoting issues?) at <top-level>, line 1:
.data.messages {"date": "2010-01-07T19:55:99.999Z", "xml": "xml_samplesheet_2017_01_07_run_09.xml", "status": "OKKK", "message": "metadata loaded into iRODS successfullyyyyy"}
jq: 1 compile error
मैं पहले से ही एक और आदेशों संयोजन की कोशिश की लेकिन मैं हमेशा के साथ समाप्त कर रहा हूँ त्रुटि संकलन। इसके बारे में कोई संकेत? धन्यवाद!
उत्पादन की तरह लग रहे चाहिए >>
{
"report": "1.0",
"data": {
"date": "2010-01-07",
"messages": [{
"date": "2010-01-07T19:58:42.949Z",
"xml": "xml_samplesheet_2017_01_07_run_09.xml",
"status": "OK",
"message": "metadata loaded into iRODS successfully"
}, {
"date": "2010-01-07T20:22:46.949Z",
"xml": "xml_samplesheet_2017_01_07_run_09.xml",
"status": "NOK",
"message": "metadata duplicated into iRODS"
}, {
"date": "2010-01-07T22:11:55.949Z",
"xml": "xml_samplesheet_2017_01_07_run_09.xml",
"status": "NOK",
"message": "metadata was not validated by XSD schema"
}, {
"date": "2010-01-07T19:55:99.999Z",
"xml": "xml_samplesheet_2017_01_07_run_09.xml",
"status": "OKKKKKKK",
"message": "metadata loaded into iRODS successfullyyyyy"
}]
}
}
यह अच्छी तरह से पता नहीं है, लेकिन यह एक ऐसा मुद्दा है .data.messages एक arrray है ना? तो आपको .data.messages जैसे कुछ चाहिए। [] –
क्षमा करें, –
काम नहीं किया ठीक है - दस्तावेज़ों को पढ़ें और jq इंस्टॉल करें (यहां विंडोज़ पर) और कोशिश की - आपके जैसा ही त्रुटि प्राप्त करें। ऐसा लगता है कि विंडोज शैल के पास समस्याएं हैं जो स्ट्रीम में डबल कोट्स को खिलाती हैं जो jq की यात्रा करती है। काम करने के लिए कुछ भी नहीं मिला, इसलिए आपके प्रश्न का कोई जवाब नहीं है लेकिन आप jq कमांड में डबल कोट्स से बचने के लिए देख सकते हैं। इसलिए यदि मैं इस आदेश का उपयोग करता हूं तो मैं "तारीख" '' \ "दिनांक \" ' –