প্রকল্প সম্পর্কে

Jayway JsonPath একটি Java লাইব্রেরি যা JsonPath কোয়েরি ভাষা বাস্তবায়ন করে, যা ডেভেলপারদের XML-এর জন্য XPath-এর মতো পাথ এক্সপ্রেশন ব্যবহার করে JSON ডকুমেন্ট থেকে ডেটা বের করতে দেয়। এটি Stefan Goessner-এর JsonPath ইমপ্লিমেন্টেশনের একটি পোর্ট এবং Maven Central-এ উপলব্ধ। ## মূল বৈশিষ্ট্য - **পাথ এক্সপ্রেশন**: JSON কাঠামো নেভিগেট করতে ডট নোটেশন (`$.store.book[0].title`) এবং ব্র্যাকেট নোটেশন (`$['store']['book'][0]['title']`) সমর্থন করে। - **অপারেটর**: ওয়াইল্ডকার্ড (`*`), ডিপ স্ক্যান (`..`), অ্যারে স্লাইসিং (`[start:end]`), এবং ফিল্টার এক্সপ্রেশন (`[?(<expression>)]`) অন্তর্ভুক্ত। - **ফাংশন**: `min()`, `max()`, `avg()`, `length()`, `sum()`, `first()`, `last()` সহ বিল্ট-ইন ফাংশন, যা পাথের শেষে প্রয়োগ করা যায়। - **ফিল্টার প্রেডিকেট**: জটিল ফিল্টারিংয়ের জন্য লজিক্যাল অপারেটর (`&&`, `||`, `!`) এবং তুলনা অপারেটর (`==`, `!=`, `<`, `>`, `=~`, `in`, `nin` ইত্যাদি) সমর্থন করে। - **ফ্লুয়েন্ট API**: JSON ডকুমেন্ট পুনরায় পার্স না করে বারবার পড়ার জন্য একটি নমনীয় `ReadContext` প্রদান করে। - **কনফিগারেশন অপশন**: `Configuration` এবং `Option` ফ্ল্যাগের মাধ্যমে কাস্টমাইজযোগ্য, যেমন `ALWAYS_RETURN_LIST` এবং `SUPPRESS_EXCEPTIONS`। - **একাধিক JSON প্রোভাইডার**: JSON-smart (ডিফল্ট), Jackson, Gson, JSON-P, এবং JSON-B-এর জন্য প্রোভাইডার সহ আসে, যা বিভিন্ন JSON লাইব্রেরির সাথে ইন্টিগ্রেশন সক্ষম করে। - **ক্যাশ SPI**: পার্স করা পাথের জন্য প্লাগেবল ক্যাশিং সমর্থন করে, ডিফল্ট ইমপ্লিমেন্টেশন যেমন `LRUCache` এবং `NOOPCache` সহ। - **ডকুমেন্ট পরিবর্তন**: নির্দিষ্ট প্রোভাইডারে মিউটেবল JSON কাঠামোর সমর্থন সহ JSON ডকুমেন্টে মান সেট, যোগ এবং মুছে ফেলার অনুমতি দেয়। ## ব্যবহারের উদাহরণ ```java String json = "..."; List<String> authors = JsonPath.read(json, "$.store.book[*].author"); ``` বারবার পড়ার জন্য, একবার পার্স করুন: ```java Object document = Configuration.defaultConfiguration().jsonProvider().parse(json); String author = JsonPath.parse(document).read("$.store.book[0].author"); ``` ## প্রয়োজনীয়তা - সংস্করণ 3.0.0-এর জন্য Java 17 প্রয়োজন এবং Jackson 3 সমর্থন করে। - Jackson, Gson, JSON-P, এবং JSON-B-এর মতো প্রোভাইডারগুলির জন্য ক্লাসপাথে অতিরিক্ত নির্ভরতা প্রয়োজন। ## ডকুমেন্টেশন আরও বিশদ বিবরণের জন্য, [অফিসিয়াল ডকুমেন্টেশন](http://www.javadoc.io/doc/com.jayway.jsonpath/json-path) দেখুন এবং Stack Overflow-এ 'jsonpath' এবং 'java' ট্যাগ সহ প্রশ্ন করুন।