منصوبے کے بارے میں

Jayway JsonPath ایک جاوا لائبریری ہے جو JsonPath query language کو نافذ کرتی ہے، جس سے ڈویلپرز JSON دستاویزات سے ڈیٹا نکال سکتے ہیں، اسی طرح جیسے XPath XML کے لیے استعمال ہوتی ہے۔ یہ Stefan Goessner کے JsonPath implementation کا ایک port ہے اور 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**: پارس شدہ پاتھوں کے لیے پلگ ایبل کیشنگ کی حمایت کرتی ہے، جس میں ڈیفالٹ implementations جیسے `LRUCache` اور `NOOPCache` شامل ہیں۔ - **دستاویز میں تبدیلی**: JSON دستاویزات میں ویلیوز سیٹ، شامل، اور حذف کرنے کی اجازت دیتی ہے، بعض پرووائیڈرز میں mutable 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' ٹیگز کے ساتھ سوالات پوچھیں۔