কমান্ড লাইন ব্যবহার করে কীভাবে JSON অবজেক্টে আইটেমগুলি গণনা করবেন?


178

আমি JSONএকটি curlআদেশ থেকে এই জাতীয় জবাব পাচ্ছি :

[
  {
    "cid": 49,
    "pyn": "yi4",
    "hans": "亿",
    "hant": "億",
    "tid": 68,
    "l10n": "cent million",
    "pid": 1,
    "pos": "num",
    "pos_txt": ""
  },
  {
    "cid": 50,
    "pyn": "yi4",
    "hans": "亿",
    "hant": "億",
    "tid": 69,
    "l10n": "100 millions",
    "pid": 1,
    "pos": "num",
    "pos_txt": ""
  }
]

অ্যারেতে (এখানে 2), Bashকমান্ড লাইন ব্যবহার করে (উদাহরণস্বরূপ underscore) আমি কীভাবে আইটেমের সংখ্যা গণনা করব ?


জাভাস্ক্রিপ্ট সমাধান, আপনার জন্য ঠিক আছে?
thefourtheye

NPMমডিউল মাধ্যমে হ্যাঁ। অন্যথায়, না।
ouডার্ড লোপেজ

আমার সমাধান পরীক্ষা করে দেখুন। এর জন্য এনপিএম দরকার নেই। সরল জাভাস্ক্রিপ্ট।
thefourtheye

1
আমি বাশ প্রসঙ্গে আছি, ওয়েব নয়
ouডোয়ার্ড লোপেজ

আপনি জানেন যে আপনি শ্যালে জাভাস্ক্রিপ্ট কার্যকর করতে পারেন, তাই না?
thefourtheye

উত্তর:


356

কেবল মিশ্রণে আরেকটি সমাধান নিক্ষেপ করা হচ্ছে ...

চেষ্টা করুন jq, একটি হালকা ও নমনীয় কমান্ড-লাইন JSON প্রসেসর:

jq length /tmp/test.json

বস্তুর অ্যারের দৈর্ঘ্য মুদ্রণ করে।


4
আপনার প্রাথমিক jqকোড ( .[]) objectরুট অ্যারেতে প্রত্যেকটির দৈর্ঘ্য ফিরিয়ে দেয় , আমি নিজেই মূল অ্যারের দৈর্ঘ্য খুঁজছি। .
এটিকে

11
যদি আপনার মূলটি কোনও অ্যারে না হয়ে থাকে তবে এমন একটি কী রয়েছে যার মধ্যে একটি অ্যারে থাকে, যেমন {"কী": [এলিএম 1, এলেম 2]}, তবে আপনি ব্যবহার করতে পারেনjq '.[] | length' file.json
বিটেক

8
আশ্চর্যজনক সরঞ্জাম, jqহয়। +1
ওরি ব্যান্ড

@ মেমোনিকফ্লো এর জন্য আর একটি দরকারী বিকল্প হ'ল jq map_values(length) file.json । এটি আপনাকে কীগুলিও দেবে।
পাওলো ক্যাসেরাতো

3
এবং যদি আপনার ইনপুটটি একটি একক অ্যারের পরিবর্তে স্বতন্ত্র অবজেক্টগুলি দিয়ে তৈরি করা হয়, আপনি সেই বিকল্প -sবা --slurpবিকল্পটি ব্যবহার করবেন যা পড়ার সময় jq -s length file.json
এগুলিকে


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.