ইউনিক্স শেল স্ক্রিপ্টে পঠনযোগ্য JSON ফর্ম্যাটে কার্ল আউটপুট প্রদর্শন করুন


215

আমার ইউনিক্স শেল স্ক্রিপ্টে, আমি যখন কার্ল কমান্ড কার্যকর করি তখন ফলাফলটি নীচে প্রদর্শিত হবে যা আমি ফাইলে পুনর্নির্দেশ করছি:

{"type":"Show","id":"123","title":"name","description":"Funny","channelTitle":"ifood.tv","lastUpdateTimestamp":"2014-04-20T20:34:59","numOfVideos":"15"}

তবে, আমি চাইছি এই আউটপুটটি ফাইলের নীচের মতো পঠনযোগ্য JSON ফর্ম্যাটে রাখবে:

{"type":"Show",
"id":"123",
"title":"name",
"description":"Funny",
"channelTitle":"ifood.tv",
"lastUpdateTimestamp":"2014-04-20T20:34:59",
"numOfVideos":"15"}

আমি কীভাবে এভাবে আউটপুট ফর্ম্যাট করব?

উত্তর:


533

এটি করার চেষ্টা করুন:

curl ... | json_pp 

বা সাথে পরিচয় ফিল্টার ব্যবহার:

curl ... | jq '.'

এখানে চিত্র বর্ণনা লিখুন

বা সাথে এবং :

curl ... | node <<< "var o = $(cat); console.log(JSON.stringify(o, null, 4));"

পরীক্ষা করে দেখুন https://stedolan.github.io/jq/


1
কোনও ফাইলে পুনর্নির্দেশ না করে প্রথমে চেষ্টা করুন। আপনি কি পরীক্ষা করেছেন যে json_pp বা jq ইনস্টল করা আছে? এটি পার্ল নিয়ে আসে
গিলস কুইনট

1
json_ppবিপরীত ক্রমে ডেটা প্রত্যাশার চেয়ে ফর্ম্যাট করে বলে মনে হচ্ছে। ডেটা বিপরীত করার উপায় আছে?
আন্তোনিও

1
json_pp একটি পার্ল কমান্ড ইউটিলিটি যা কিছু ইনপুট এবং আউটপুট ফর্ম্যাটগুলির মধ্যে রূপান্তর করে (যার মধ্যে একটি জেএসওএন)। ডিফল্ট ইনপুট ফর্ম্যাটটি হ'ল জসন এবং ডিফল্ট আউটপুট ফর্ম্যাটটি হ'ল সুন্দর বিকল্পের সাথে জসন।
ফবিজান বাজো

3
json_pp সমাধানের পাইপটি এত মার্জিত। আপনাকে ধন্যবাদ
অ্যান্ডি

1
নোড মধ্যে পাইপ খুব মার্জিত। ধন্যবাদ!
ম্যাথু জ্যাকসচিউস্কি

53

আমি অনুমান করছি যে আপনি JSON আউটপুট প্রিটিফাই করতে চান। পাইথন ব্যবহার করে এটি অর্জন করা যেতে পারে:

curl http://localhost:8880/test.json | python -mjson.tool > out.json


উত্তর করার জন্য ধন্যবাদ. তবে আমি পাইথন ব্যবহার করছি না, আমি শেল ব্যবহার করছি। আপনি কি আমাকে শেল নিয়ে গাইড করতে পারেন
জামস

@ জ্যামস যা শেল থেকে অজগরকে কার্যকর করে আপনার সুন্দর মুদ্রিত আউটপুট দেয়।
অগকন্টি

পাইথন হিসাবে দুর্দান্ত সমাধান পূর্বনির্ধারিত আসে।
গায়ান ওয়েরাকুট্টি

1
আমি যখন এটিতে "| মাথা" যুক্ত করি তখন পাইথন স্ক্রিপ্টটি "ভাঙা পাইপ" ত্রুটি দেয়।
বিড়ালছানা

@ ক্রাউচিংকিটেন আমি নিজেই এই সমস্যাটি দেখতে পাচ্ছি না (সম্ভবত বিভিন্ন সংস্করণ), তবে headএটি শেষ হওয়ার আগে আউটপুটটি পাইপ করা কমান্ডের কারণে হতে পারে , এভাবে পাইপটি "ভাঙ্গা"। আপনি যদি headপাইপ থেকে পুরো ডেটা স্ট্রিম গ্রাস করার অনুমতি দেন তবে আমি ত্রুটিটি প্রদর্শিত না হওয়ার আশা করব।
কোড_ড্রেড

19
python -m json.tool
Curl http://127.0.0.1:5000/people/api.json | python -m json.tool

সাহায্য করতে পারে।


11

আপনি এই নোড মডিউলটি ব্যবহার করতে পারেন

[sudo] npm i -g json; // নোড মডিউল ইনস্টল করতে রুট বিশেষাধিকার না ব্যবহার করার পরামর্শ দিন

তারপরে |jsonকার্ল পরে কেবল যুক্ত করুন । curl http://localhost:8880/test.json |json


11

এটি গিলসের উত্তর যুক্ত করতে হবে। এটি করার বিভিন্ন উপায় রয়েছে তবে ব্যক্তিগতভাবে আমি সাধারণ * নিক্স সিস্টেমে হালকা কিছু, স্মরণে রাখা সহজ এবং সর্বজনীনভাবে উপলভ্য (যেমন আপনার পছন্দসই লিনাক্স গন্ধযুক্ত স্ট্যান্ডার্ড এলটিএস ইনস্টলেশন বা ইনস্টল করা সহজ) এর সাথে কিছু পছন্দ করি।

এখানে তাদের পছন্দসই ক্রমে বিকল্পগুলি রয়েছে:

পাইথন জসন.টুল মডিউল

echo '{"foo": "lorem", "bar": "ipsum"}' | python -mjson.tool

পেশাদার: প্রায় সর্বত্র পাওয়া যায়; কনস: কোন রঙ কোডিং


jq (এক সময় ইনস্টলেশন প্রয়োজন হতে পারে)

echo '{"foo": "lorem", "bar": "ipsum"}' | jq

কনস: জেকিউ ইনস্টল করা প্রয়োজন; পেশাদাররা: রঙিন কোডিং এবং বহুমুখী


json_pp (উবুন্টু 16.04 এলটিএস এ উপলব্ধ)

echo '{"foo": "lorem", "bar": "ipsum"}' | json_pp

রুবি ব্যবহারকারীদের জন্য

gem install jsonpretty
echo '{"foo": "lorem", "bar": "ipsum"}' | jsonpretty

ধন্যবাদ @ জেনহুয়া! আমি cat myFile.json | python -mjson.tool >> myFilePretty.jsonতখন আমার সম্পাদকটিতে খোলা ব্যবহার করেছি (vim, ঘৃণা করবেন না) এবং রঙ পেয়েছি।
Essa

8

আমি json_reformat খুব সহজ বলে মনে হয়েছে। সুতরাং আমি সবেমাত্র নিম্নলিখিতগুলি করেছি:

curl http://127.0.0.1:5000/people/api.json | json_reformat

এটাই!


উবুন্টু ব্যবহার করা হলে আপনি ইয়াজল-সরঞ্জাম প্যাকেজে json_reformat খুঁজে পেতে পারেন।
কেভিন


1

অনুপ্রেরণা: আপনি কার্ল কমান্ড অনুরোধের পরে প্রিটিটিফাই JSON প্রতিক্রিয়া মুদ্রণ করতে চান।

সমাধান : json_pp - কমান্ডলাইন সরঞ্জাম যা কিছু ইনপুট এবং আউটপুট ফর্ম্যাটগুলির মধ্যে রূপান্তর করে (তাদের মধ্যে একটি জেএসওএন)। এই প্রোগ্রামটি json_xs থেকে অনুলিপি করে সংশোধিত হয়েছে। ডিফল্ট ইনপুট ফর্ম্যাটটি হ'ল জসন এবং ডিফল্ট আউটপুট ফর্ম্যাটটি হ'ল সুন্দর বিকল্পের সাথে জসন।

সংশ্লেষ : json_pp [-v] [-f from_format] [-t to_format] [-json_opt options_to_json1[,options_to_json2[,...]]]

সূত্র :<someCommand> | json_pp

উদাহরণ :

অনুরোধ

curl -X https://jsonplaceholder.typicode.com/todos/1 | json_pp 

প্রতিক্রিয়া

{
   "completed" : false,
   "id" : 1,
   "title" : "delectus aut autem",
   "userId" : 1
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.