क्या कोई यूनिक्स (अपने स्वाद का चयन) JSON पार्सर की सिफारिश कर सकता है जिसका उपयोग एक पाइपलाइन में JSON प्रतिक्रिया से मूल्यों को आत्मसात करने के लिए किया जा सकता है?
npm install -g ramda-cli
क्या कोई यूनिक्स (अपने स्वाद का चयन) JSON पार्सर की सिफारिश कर सकता है जिसका उपयोग एक पाइपलाइन में JSON प्रतिक्रिया से मूल्यों को आत्मसात करने के लिए किया जा सकता है?
npm install -g ramda-cli
जवाबों:
आप इस कमांड-लाइन पार्सर का उपयोग कर सकते हैं (जिसे आप पसंद करते हैं, तो आप bash उर्फ में डाल सकते हैं), Perl कोर में निर्मित मॉड्यूल का उपयोग करके:
perl -MData::Dumper -MJSON::PP=from_json -ne'print Dumper(from_json($_))'
perl -e "use JSON; print to_json( decode_json(<>), { pretty => 1 } )"
मुझे python -m json.tool
लगता है कि जो प्रति डिफ़ॉल्ट डिफ़ॉल्ट रूप से अधिकांश * निक्स ऑपरेटिंग सिस्टम पर उपलब्ध है।
$ echo '{"foo":1, "bar":2}' | python -m json.tool
{
"bar": 2,
"foo": 1
}
लेकिन यह ध्यान दिया जाना चाहिए कि यह सभी चाबियों को वर्णानुक्रम में छांटेगा, जो कि एक अच्छी बात हो सकती है, जहां कुछ भाषा द्वारा जेनसन उत्पन्न किया गया था जिसमें अनएम्डेड हैशमैप का उपयोग किया गया था ...
json.tool
सुंदर प्रिंट json के लिए सिर्फ एक छोटा हाथ है। यदि आपको शेल स्क्रिप्ट में json डेटा को निकालने / हेरफेर करने की आवश्यकता है, तो मैं उपयोग करूँगा jq
जो शुद्ध भयानक है जो कि है ...
json.tool
दैनिक दस बार उपयोग करता हूं । मुझे लगता है कि मैंने प्रश्न में "इंट्रोस्पेक" के अर्थ को गलत तरीके से फैलाया, आपके इंगित करने के लिए धन्यवाद।
json.tool
केवल दो चीजें करता है: मान्य और सुंदर-प्रिंट वाला जोंस। यह इस तरह से जोंस में मूल्यों का आत्मनिरीक्षण नहीं jq
करता है।
यदि आप एक पोर्टेबल सी संकलित उपकरण की तलाश कर रहे हैं:
http://stedolan.github.com/jq/
वेबसाइट से:
jq JSON डेटा के लिए sed की तरह है - आप इसे स्लाइस और फ़िल्टर और मैप करने के लिए उपयोग कर सकते हैं और संरचित डेटा को उसी आसानी से बदल सकते हैं जो sed , awk , grep और दोस्तों को आपको पाठ के साथ खेलने देता है।
jq उस डेटा स्वरूप को मेन्टल कर सकता है जो आपके पास है जिसे आप बहुत कम प्रयास के साथ चाहते हैं, और ऐसा करने का कार्यक्रम अक्सर कम और सरल होता है, जिसकी आप अपेक्षा करते हैं।
ट्यूटोरियल : http://stedolan.github.com/jq/tutorial/
मैनुअल : http://stedolan.github.com/jq/manual/
डाउनलोड : http://stedolan.github.com/jq/download/
apt install jq
।
jq
।
मैंने विशेष रूप से कमांड-लाइन JSON हेरफेर के लिए एक मॉड्यूल बनाया है:
https://github.com/ddopson/underscore-cli
यह आपको वास्तव में आसानी से शक्तिशाली चीजें करने की अनुमति देता है:
cat earthporn.json | underscore select '.data .title'
# [ 'Fjaðrárgljúfur canyon, Iceland [OC] [683x1024]',
# 'New town, Edinburgh, Scotland [4320 x 3240]',
# 'Sunrise in Bryce Canyon, UT [1120x700] [OC]',
# ...
# 'Kariega Game Reserve, South Africa [3584x2688]',
# 'Valle de la Luna, Chile [OS] [1024x683]',
# 'Frosted trees after a snowstorm in Laax, Switzerland [OC] [1072x712]' ]
cat earthporn.json | underscore select '.data .title' | underscore count
# 25
underscore map --data '[1, 2, 3, 4]' 'value+1'
# prints: [ 2, 3, 4, 5 ]
underscore map --data '{"a": [1, 4], "b": [2, 8]}' '_.max(value)'
# [ 4, 8 ]
echo '{"foo":1, "bar":2}' | underscore map -q 'console.log("key = ", key)'
# key = foo
# key = bar
underscore pluck --data "[{name : 'moe', age : 40}, {name : 'larry', age : 50}, {name : 'curly', age : 60}]" name
# [ 'moe', 'larry', 'curly' ]
underscore keys --data '{name : "larry", age : 50}'
# [ 'name', 'age' ]
underscore reduce --data '[1, 2, 3, 4]' 'total+value'
# 10
और इसके पास सबसे अच्छा "स्मार्ट-व्हाट्सएप" उपलब्ध है, जो जेन्सन फॉर्मेटर्स उपलब्ध हैं:
यदि आपके पास कोई सुविधा अनुरोध है, तो इस पोस्ट पर टिप्पणी करें या जीथब में एक मुद्दा जोड़ें। मुझे उन सुविधाओं को प्राथमिकता देने में खुशी होगी जो समुदाय के सदस्यों द्वारा आवश्यक हैं।
wget
प्रत्येक URL के साथ एक JSON फ़ाइल दी गई है ।
underscore
नेस्टेड जोंस को नेस्टेड ऑब्जेक्ट्स और एरेज़ को पार्स करने के लिए इस्तेमाल कर सकता हूं ?
यदि आपके नोड में नोड.जेएस और एनपीएम है तो JSON कमांड लाइन प्रोसेसिंग टूलकिट भी है ।
और आपके यूनिक्स कमांड लाइन पर JSON की मालिश करने के लिए एक और "json" कमांड ।
और यहाँ अन्य विकल्प हैं:
संबंधित: यूनिक्स के लिए JSON इनपुट पार्स करने के लिए कमांड लाइन टूल?
npm install json
।
json
पैकेज अब एक पूरी तरह से अलग पैकेज द्वारा लिया जा रहा है।
किसी ने Jshon या JSON.sh का उल्लेख किया है?
https://github.com/keenerd/jshon
इसके लिए पाइप json, और यह jSON ऑब्जेक्ट्स का पता लगाता है और वर्तमान ऑब्जेक्ट (JSON सरणी के रूप में) और फिर व्हॉट्सएप के बिना ऑब्जेक्ट को पथ प्रिंट करता है।
http://kmkeen.com/jshon/
Jshon स्टड से जोंस टेक्स्ट को लोड करता है, एक्शन करता है, फिर स्टडआउट पर अंतिम एक्शन दिखाता है और सामान्य टेक्स्ट प्रोसेसिंग पाइपलाइन का हिस्सा भी बनाया गया।
brew install jshon
,cat *.json | jshon
के लिए बैश / अजगर , यहां अजगर के चारों ओर एक बुनियादी आवरण है simplejson
:
json_parser() {
local jsonfile="my_json_file.json"
local tc="import simplejson,sys; myjsonstr=sys.stdin.read(); "`
`"myjson=simplejson.loads(myjsonstr);"
# Build python print command based on $@
local printcmd="print myjson"
for (( argn=1; argn<=$#; argn++ )); do
printcmd="$printcmd['${!argn}']"
done
local result=$(python -c "$tc $printcmd.keys()" <$jsonfile 2>/dev/null \
|| python -c "$tc $printcmd" <$jsonfile 2>/dev/null)
# For returning space-separated values
echo $result|sed -e "s/[]|[|,|']//g"
#echo $result
}
यह वास्तव में केवल डेटा की नेस्टेड-डिक्शनरी शैली को संभालता है, लेकिन यह मेरे लिए आवश्यक है के लिए काम करता है, और जोसन के माध्यम से चलने के लिए उपयोगी है। यह शायद स्वाद के लिए अनुकूलित किया जा सकता है।
वैसे भी, जो अभी तक एक और बाहरी निर्भरता में स्रोत नहीं करना चाहते हैं के लिए कुछ होमग्रोन। अजगर को छोड़कर, बिल्कुल।
पूर्व। json_parser {field1} {field2}
चला जाएगा print myjson['{field1}']['{field2}']
, या तो कुंजी या मूल्यों के साथ जुड़े {field2}
, अंतरिक्ष-अलग-अलग।
मैंने सिर्फ jkid बनाया जो कि एक छोटी कमांड-लाइन json एक्सप्लोरर है जिसे मैंने आसानी से बड़ी json ऑब्जेक्ट्स का पता लगाने के लिए बनाया है। ऑब्जेक्ट्स को "ट्रांसवर्सली" एक्सप्लोर किया जा सकता है और कंसोल ओवरफ्लो से बचने के लिए "प्रीव्यू" विकल्प मौजूद है।
$ echo '{"john":{"size":20, "eyes":"green"}, "bob":{"size":30, "eyes":"brown"}}' > test3.json
$ jkid . eyes test3.json
object[.]["eyes"]
{
"bob": "brown",
"john": "green"
}
jkid
मैक में कैसे स्थापित कर सकता हूं ?