9. 15توابع و اپراتورهای JSON

ساخت وبلاگ

جدول 9-40 اپراتورهایی را که برای استفاده با دو نوع داده JSON در دسترس هستند نشان می دهد (به بخش 8. 14 مراجعه کنید).

جدول 9-40.jsonوتjsonbعملگر

 

اپراتورنوع عمل راستشرحمثالنتیجه
->در نظر گرفتنعناصر آرایه JSON را دریافت کنید (از صفر ، عدد صحیح منفی از انتها حساب می شود)'[,,]'::json->2
->متنقسمت JSON Object را با کلید دریافت کنید'>'::json->'آ'
->>در نظر گرفتنعنصر array json را به عنوان دریافت کنیدمتن'[1,2,3]'::json->>23
->>متنزمینه JSON Object را به عنوان دریافت کنیدمتن''::json->>"ب"2
#>متن []شیء JSON را در مسیر مشخص دریافت کنید'>>'::json#>''
#>>متن []شیء JSON را در مسیر مشخص به عنوان دریافت کنیدمتن''::json#>>''3

توجه: انواع موازی این اپراتورها برای هر دو وجود داردjsonوتjsonbانواعاپراتورهای استخراج Field/Element/Path همان نوع ورودی سمت چپ خود را برمی گردانند (یاjsonیاjsonb) ، به جز مواردی که به عنوان بازگشت مشخص شده اندمتن، که ارزش متن را به خود جلب می کند. اگر ورودی JSON ساختار مناسبی برای مطابقت با درخواست نداشته باشد ، اپراتورهای استخراج فیلد/عنصر/مسیر به جای عدم موفقیت ، تهی می کنند. به عنوان مثال اگر چنین عنصری وجود نداشته باشد. اپراتورهای استخراج Field/Element/PATH که اشتراک های آرایه JSON عدد صحیح را می پذیرند ، همه از اشتراک منفی از انتهای آرایه ها پشتیبانی می کنند.

اپراتورهای مقایسه استاندارد نشان داده شده در جدول 9-1 برایjsonb، اما نه برایjsonبشرآنها قوانین سفارش را برای عملیات درخت B بیان شده در بخش 8. 14. 4 دنبال می کنند.

برخی از اپراتورهای دیگر نیز فقط برایjsonb، همانطور که در جدول 9-41 نشان داده شده است. بسیاری از این اپراتورها می توانند توسطjsonbکلاسهای اپراتور. برای توصیف کامل ازjsonbمعانی مهار و وجود ، به بخش 8. 14. 3 مراجعه کنید. بخش 8. 14. 4 نحوه استفاده از این اپراتورها را برای نمایه سازی مؤثر توصیف می کندjsonbداده ها.

جدول 9-41. اضافیjsonbعملگر

 

اپراتورنوع عمل راستشرحمثال
@>jsonbآیا مقدار JSON سمت چپ حاوی ورودی های مسیر/ارزش JSON راست در سطح بالا است؟''::jsonb @>'' :: JSONB
 jsonbآیا ورودی های مسیر/ارزش JSON سمت چپ در سطح بالا در مقدار JSON سمت راست موجود است؟'' :: JSONB<@ ''::jsonb
?متنآیا رشته به عنوان یک کلید سطح بالا در مقدار JSON وجود دارد؟'' :: JSONB؟"ب"
?|متن []آیا هر یک از این رشته های آرایه به عنوان کلیدهای سطح بالا وجود دارد؟'' :: JSONB؟ |آرایه ['B' ، 'C']
?&متن []آیا همه این رشته های آرایه به عنوان کلیدهای سطح بالا وجود دارند؟'["A" ، "B"] :: JSONB؟ & ARRAY [' A '،' B ']
||jsonbدو نفر را جمع کنیدjsonbارزش ها را به یک جدیدjsonbارزش'["A" ، "B"] :: JSONB ||'["C" ، "D"] :: JSONB
-متنحذف جفت کلید/مقدار یا عنصر رشته از عمل چپ. جفت های کلید/مقدار بر اساس مقدار کلید آنها مطابقت دارند.'' :: jsonb - 'a'
-عدد صحیحعنصر آرایه را با شاخص مشخص شده حذف کنید (تعداد اعداد صحیح از انتها شمارش می شود). اگر کانتینر سطح بالا آرایه ای نباشد ، خطایی را به وجود می آورد.'["A" ، "B"] :: JSONB - 1
#-متن []فیلد یا عنصر را با مسیر مشخص حذف کنید (برای آرایه های JSON ، عدد صحیح منفی از انتها حساب می شود)'["a" ،]' :: jsonb #- ''

توجه داشته باشید که||اپراتور با تولید یک شیء حاوی اتحاد کلیدهای خود ، دو شیء JSON را به هم می پیوندد و مقدار شیء دوم را در هنگام وجود کلیدهای تکراری در نظر می گیرد. همه موارد دیگر یک آرایه JSON تولید می کنند: اول ، هر ورودی غیر آرایه به یک آرایه تک عنصر تبدیل می شود ، و سپس دو آرایه به هم پیوسته می شوند. به صورت بازگشتی عمل نمی کند. فقط آرایه سطح بالا یا ساختار شیء ادغام می شود.

جدول 9-42 توابع موجود برای ایجاد را نشان می دهدjsonوتjsonbارزش های.(هیچ کارکرد معادل برای آن وجود نداردjsonb، ازrow_to_jsonوتarray_to_jsonکارکرد. با این حالto_jsonbعملکرد تقریباً همان عملکرد این توابع را تأمین می کند.)

خبرهای فارکس...
ما را در سایت خبرهای فارکس دنبال می کنید

برچسب : نویسنده : عفت السادات شجاعی بازدید : 51 تاريخ : جمعه 4 فروردين 1402 ساعت: 15:31