عن المشروع
Jayway JsonPath هي مكتبة جافا تطبق لغة استعلام JsonPath، مما يتيح للمطورين استخراج البيانات من مستندات JSON باستخدام تعابير المسار المشابهة لـ XPath المستخدمة في XML. إنها نسخة محوّلة من تنفيذ Stefan Goessner لـ JsonPath وهي متاحة على Maven Central.
## الميزات الرئيسية
- **تعابير المسار**: تدعم كتابة النقاط (`$.store.book[0].title`) والأكوام (`$['store']['book'][0]['title']`) للتنقل في هياكل JSON.
- **العمليات**: تشمل الرموز العالمية (`*`)، والعمليات العميقة (`..`)، وقطع المصفوفات (`[start:end]`)، وتعابير التصفية (`[?(<expression>)]`).
- **الوظائف**: وظائف مدمجة مثل `min()` و`max()` و`avg()` و`length()` و`sum()` و`first()` و`last()` وغيرها، يمكن تطبيقها في نهاية المسار.
- **شروط التصفية**: تدعم العوامل المنطقية (`&&`، `||`، `!`) وعوامل المقارنة (`==`، `!=`، `<`، `>`، `=~`، `in`، `nin`، إلخ) للتصفية المعقدة.
- **واجهة مرنة**: توفر `ReadContext` مرنة للقراءات المتعددة دون إعادة تحليل مستند JSON.
- **خيارات التكوين**: قابلة للتخصيص عبر `Configuration` وعلامات `Option` مثل `ALWAYS_RETURN_LIST` و`SUPPRESS_EXCEPTIONS`.
- **مقدمو JSON متعددون**: يأتي مع مقدمي خدمة JSON-smart (افتراضي)، Jackson، Gson، JSON-P، وJSON-B، مما يتيح التكامل مع مكتبات JSON متنوعة.
- **واجهة التخزين المؤقت SPI**: تدعم التخزين المؤقت القابل للتوصيل للرموز المميزة المحلولة، مع تنفيذيات افتراضية مثل `LRUCache` و`NOOPCache`.
- **تعديل المستند**: يسمح بضبط وإضافة وحذف القيم في مستندات 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 تبعيات إضافية على classpath.
## التوثيق
لمزيد من التفاصيل، راجع [التوثيق الرسمي](http://www.javadoc.io/doc/com.jayway.jsonpath/json-path) وطرح الأسئلة على Stack Overflow باستخدام علامات 'jsonpath' و'java'.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.