मैं jq
एक JSON संरचना को पार्स करने की कोशिश कर रहा हूं जैसे:
{
"a" : 1,
"b" : 2,
"c" : "{\"id\":\"9ee ...\",\"parent\":\"abc...\"}\n"
}
यही है, JSON में एक तत्व एक भाग है जिसमें बचा हुआ जसन है।
तो, मैं कुछ की तर्ज पर है
$ jq [.c] myFile.json | jq [.id]
लेकिन इससे दुर्घटना होती है jq: error: Cannot index string with string
ऐसा इसलिए है क्योंकि .c का आउटपुट एक स्ट्रिंग है, JSON अधिक नहीं। इस स्ट्रिंग को पार्स करने के लिए मुझे jq कैसे मिलेगा?
मेरा प्रारंभिक समाधान सभी एस्केप वर्ण ( और ) को बदलने के लिए sed का उपयोग करना है \":\"
, लेकिन यह गड़बड़ है, मुझे लगता है कि ऐसा करने के लिए एक तरीका बनाया गया है?\",\"
\"
jq
धन्यवाद!
संपादित करें: इसके अलावा, यहाँ उपलब्ध jq संस्करण है:
$ jq --version
jq version 1.3
मुझे लगता है कि आवश्यकता होने पर मैं इसे अपडेट कर सकता था।