DevToys Web Pro iconDevToys Web Proব্লগ
আমাদের রেট দিন:
ব্রাউজার এক্সটেনশন ব্যবহার করে দেখুন:

JSONPath টেস্টার

JSONPath এক্সপ্রেশন

JSON ইনপুট

  • ফলাফলসমূহ

  • Loading editor...
    কোনো ফলাফল পাওয়া যায়নি
    সিনট্যাক্সবর্ণনা
    $রুট অবজেক্ট বা অ্যারে
    @বর্তমান নোড (ফিল্টার এক্সপ্রেশনে ব্যবহৃত)
    object.propertyডট-নোটেশনযুক্ত চাইল্ড
    ['object'].['property']ব্র্যাকেট-নোটেশনযুক্ত চাইল্ড বা চিলড্রেন
    ..propertyরিকার্সিভ ডিসেন্ট
    *ওয়াইল্ডকার্ড। সব এলিমেন্ট নির্বাচন করে
    [n]অ্যারে থেকে n-তম এলিমেন্ট নির্বাচন করে
    [n1,n2]n1 এবং n2 অ্যারে আইটেম নির্বাচন করে (ইউনিয়ন)
    [start:end:step]অ্যারে স্লাইস অপারেটর
    ?(expression)ফিল্টার এক্সপ্রেশন
    (expression)স্ক্রিপ্ট এক্সপ্রেশন
    প্রযুক্তিগত বিবরণ

    JSONPath টেস্টার কীভাবে কাজ করে

    টুলটি কী করে

    JSONPath টেস্টার আপনাকে JSONPath এক্সপ্রেশন ব্যবহার করে নেস্টেড JSON ডেটা কুয়েরি করতে দেয়, যেমন XML-এর জন্য XPath কাজ করে। এই jsonpath টেস্টারটি একটি JSONPath এক্সপ্রেশন টেস্টার এবং json সিলেক্টর হিসেবে কাজ করে, যা ডেভেলপারদের জটিল JSON স্ট্রাকচার থেকে নির্দিষ্ট মান, অ্যারে বা অবজেক্ট বের করতে সাহায্য করে। যখন আপনাকে jsonpath অনলাইনে টেস্ট করতে হয়, এই টুলটি সব ম্যাচিং মান এবং তাদের পাথ দেখায়। এটি JSONPath সিনট্যাক্স সমর্থন করে, যেমন ডট নোটেশন ( $.store.book), ব্র্যাকেট নোটেশন ( $['store']['book']), ওয়াইল্ডকার্ড ( $..*), অ্যারে স্লাইসিং, এবং ফিল্টারিং এক্সপ্রেশন। এই টুলটি jsonpath-plus সেম্যান্টিক্স অনুসরণ করে; JSONPath ইমপ্লিমেন্টেশন ভিন্ন হতে পারে, তাই আপনার এক্সপ্রেশন অন্য কোথাও কাজ করলেও এখানে না করলে সেটা ডায়ালেক্ট পার্থক্য হতে পারে। এটি ম্যাচ হওয়া মান এবং JSONPath পাথ—দুটিই দেখায়, ফলে এক্সপ্রেশনগুলো কীভাবে JSON স্ট্রাকচারের মধ্যে নেভিগেট করে তা বোঝা সহজ হয়।

    ডেভেলপারদের সাধারণ ব্যবহারক্ষেত্র

    ডেভেলপাররা API রেসপন্স, কনফিগারেশন ফাইল, বা জটিল নেস্টেড JSON ডেটা স্ট্রাকচারের সাথে কাজ করার সময় JSONPath টেস্টার ব্যবহার করেন। একটি JSONPath এক্সপ্রেশন টেস্টার গভীরভাবে নেস্টেড অবজেক্ট থেকে নির্দিষ্ট ফিল্ড বের করতে, প্রেডিকেট দিয়ে অ্যারে ফিল্টার করতে, বা কোনো নির্দিষ্ট কী-এর সব উপস্থিতি খুঁজে পেতে সাহায্য করে। অনেক ডেভেলপার REST API থেকে JSON ডেটা কুয়েরি করতে, লগ ফাইল পার্স করতে, বা জটিল কনফিগারেশন অবজেক্ট নেভিগেট করতে JSONPath টেস্টার ব্যবহার করেন। ডেটা ট্রান্সফরমেশন ডিবাগ করা, API রেসপন্স ভ্যালিডেট করা, বা জটিল JSON স্কিমা বোঝার ক্ষেত্রে এই টুলটি মূল্যবান। JSONPath কুয়েরি চালানোর আগে ভালো রিডেবিলিটির জন্য আপনি JSON Formatter ব্যবহার করে আপনার JSON ফরম্যাট করতে চাইতে পারেন। কনফিগারেশন ফাইলের জন্য, JSON ↔ YAML Converter ফরম্যাটের মধ্যে কনভার্ট করতে সাহায্য করতে পারে। অ্যারে ডেটা ইনস্পেক্ট করার সময়, JSON Array to Table টুলটি সহজ বিশ্লেষণের জন্য ফলাফল ট্যাবুলার ফরম্যাটে এক্সপোর্ট করতে পারে।

    ডেটা ফরম্যাট, টাইপ বা ভ্যারিয়েন্ট

    JSONPath JSON স্ট্রাকচার নেভিগেট করার একাধিক উপায় দেয়। টুলটি রুট সিলেক্টর ($), চাইল্ড সিলেক্টর (. বা []), ডেসেন্ড্যান্ট সিলেক্টর ( ..), অ্যারে ইনডেক্সিং ([0], [-1]), এবং অ্যারে স্লাইসিং ( [0:3]) সমর্থন করে। ডেভেলপাররা যে সাধারণ JSONPath এক্সপ্রেশনগুলো ব্যবহার করেন:

    • $.items[*].id — items অ্যারে থেকে সব id ফিল্ড বের করুন
    • $..id— যেকোনো নেস্টিং লেভেলে সব id ফিল্ড খুঁজুন
    • $['key-with-dash'] — বিশেষ অক্ষরযুক্ত কী অ্যাক্সেস করুন
    • $..book[?(@.price < 10)].title — দামের ভিত্তিতে বই ফিল্টার করে শিরোনাম বের করুন

    এই এক্সপ্রেশনগুলো দেখায় কীভাবে JSONPath নেস্টেড অ্যারে কুয়েরি করতে পারে, প্রেডিকেট দিয়ে অবজেক্ট ফিল্টার করতে পারে, এবং জটিল স্ট্রাকচার থেকে নির্দিষ্ট ফিল্ড বের করতে পারে।

    সাধারণ ভুল ও এজ কেস

    একটি সাধারণ ভুল হলো JSONPath-কে JavaScript অবজেক্ট প্রপার্টি অ্যাক্সেসের সাথে গুলিয়ে ফেলা, কারণ JSONPath অ্যারে ফিল্টারিং এবং ওয়াইল্ডকার্ডের জন্য ভিন্ন সিনট্যাক্স ব্যবহার করে। আরেকটি বিষয় হলো কখন ডট নোটেশন বনাম ব্র্যাকেট নোটেশন ব্যবহার করতে হবে তা বোঝা: ডট নোটেশন সহজ কী-এর জন্য কাজ করে, কিন্তু বিশেষ অক্ষরযুক্ত কী বা এক্সপ্রেশন ব্যবহার করলে ব্র্যাকেট নোটেশন প্রয়োজন। অ্যারে ইনডেক্সিং জটিল হতে পারে: [-1] এর মতো নেগেটিভ ইনডেক্স শেষ এলিমেন্টকে নির্দেশ করে, কিন্তু সব JSONPath ইমপ্লিমেন্টেশন এটি সমর্থন করে না। ফিল্টারিং এক্সপ্রেশনে সঠিক কম্প্যারিজন অপারেটর ব্যবহার করতে হবে এবং বর্তমান আইটেমকে @ দিয়ে রেফার করতে হবে। ডেসেন্ড্যান্ট সিলেক্টর (..) প্রত্যাশার চেয়ে বেশি এলিমেন্ট ম্যাচ করলে অপ্রত্যাশিত ফল দিতে পারে। ডেভেলপারদের বিভিন্ন JSON স্ট্রাকচারের সাথে JSONPath এক্সপ্রেশন টেস্ট করা উচিত, যার মধ্যে খালি অ্যারে, null মান, এবং গভীরভাবে নেস্টেড অবজেক্টের মতো এজ কেসও থাকবে। কিছু JSONPath ইমপ্লিমেন্টেশনে এজ কেস হ্যান্ডলিংয়ে সূক্ষ্ম পার্থক্য থাকে, তাই টেস্টিং অত্যাবশ্যক।

    ত্রুটি এবং যাচাইকরণ

    JSONPath নিয়ে কাজ করার সময় বিভিন্ন ধরনের ত্রুটি ঘটতে পারে। অবৈধ JSON ইনপুট হলে JSONPath এক্সপ্রেশন মূল্যায়নের আগে পার্সিং ত্রুটি হবে। অবৈধ JSONPath এক্সপ্রেশন হলে সিনট্যাক্সে কী ভুল আছে তা নির্দেশ করে একটি ত্রুটি বার্তা ফেরত আসবে। এক্সপ্রেশনটি JSON স্ট্রাকচারের কোনো মানের সাথে ম্যাচ না করলে ফলাফল হিসেবে একটি খালি অ্যারে ফেরত আসে—এটি স্বাভাবিক আচরণ, ত্রুটি নয়। টুলটি JSON সিনট্যাক্স এবং JSONPath এক্সপ্রেশন সিনট্যাক্স—দুটিই ভ্যালিডেট করে এবং ভুল ইনপুটের জন্য স্পষ্ট ত্রুটি বার্তা দেয়। আপনার JSONPath এক্সপ্রেশন বৈধ হলেও যদি কোনো ফলাফল না আসে, তাহলে এক্সপ্রেশনটি আপনার JSON ডেটার স্ট্রাকচারের সাথে ম্যাচ করছে না, অথবা ডেটায় প্রত্যাশিত ফিল্ড নেই।

    কোডের বদলে কখন এই টুল ব্যবহার করবেন

    দ্রুত কুয়েরি ডেভেলপমেন্ট, জটিল এক্সপ্রেশন ডিবাগ করা, বা JSON ডেটা স্ট্রাকচার এক্সপ্লোর করার জন্য এই JSONPath টেস্টার ব্যবহার করুন। কোডে ইমপ্লিমেন্ট করার আগে JSONPath এক্সপ্রেশন টেস্ট করার জন্য এটি আদর্শ, বিশেষ করে অপরিচিত API বা জটিল নেস্টেড ডেটার সাথে কাজ করার সময়। ভিজ্যুয়াল ফিডব্যাক এক্সপ্রেশন কেন ম্যাচ করছে বা করছে না তা শনাক্ত করতে সাহায্য করে। প্রোডাকশন কোডের জন্য, আপনার অ্যাপ্লিকেশনে ইন্টিগ্রেট করা JSONPath লাইব্রেরি ব্যবহার করুন, যা দক্ষভাবে JSON ডেটা প্রসেস করতে পারে। ব্রাউজার টুল ইন্টার‌্যাক্টিভ ডেভেলপমেন্ট ও এক্সপ্লোরেশনে ভালো, আর কোড-ভিত্তিক সমাধান পারফরম্যান্স, টাইপ সেফটি, এবং ডেটা প্রসেসিং পাইপলাইনের সাথে ইন্টিগ্রেশন দেয়। বড় ডেটাসেট বা উচ্চ-পারফরম্যান্স অ্যাপ্লিকেশনের জন্য, আপনার প্রোগ্রামিং ভাষার নেটিভ JSONPath ইমপ্লিমেন্টেশন ব্রাউজার-ভিত্তিক টুলের চেয়ে ভালো পারফরম্যান্স দেয়।