OPENJSON – ساده ترین راه برای افزودن متن JSON به جدول

OPENJSON – ساده ترین راه برای افزودن متن JSON به جدول

مقدمه

در این مقاله ما نشان خواهیم داد که چطور می توان از طریق متن JSON جدول SQL را اضافه / بروز رسانی کرد.

مسئله

پایگاه داده ما یک سند JSON از سیستم های خارجی دریافت کرده است.این اسناد JSON ممکن است مقادیر ارسال شده به سرویس های وب REST ، اطلاعات مربوط به سنسورها ، سوابق پرونده های ثبت شده با فرمت JSON یا سایر اطلاعات تبدیل سیستم به عنوان JSON در هنگام انتقال داده ها باشد. ما به روشی برای وارد کردن اسناد JSON در جداول SQL نیاز داریم.

راه حل

عملکرد جدول OPENJSON شیء JSON را به یک یا چند ردیف تبدیل می کند. این ردیف ها را می توان در جداول وارد کرد یا می توان از آنها برای بروزرسانی سوابق موجود در جداول استفاده کرد.

نحو عملکرد OPENJSON که سند JSON را به سطر تبدیل می کند مانند زیر می باشد :

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

در مثال فوق ما شیء JSON را باز و ستون های مربوط به آن را تعریف کردیم.

مورد کاربردی ۱ : افزودن محتوای JSON به جدول

اکنون ، وقتی JSON را باز کردیم ، می توانیم کاری انجام دهیم. به عنوان نمونه ، می توانیم از تابع OPENJSON برای بارگذاری مستقیم آبجکت JSON در یک جدول استفاده کنیم:

متغیر JSON به یک ردیف تبدیل می شود که می تواند مانند هر سطر دیگر در یک جدول قرار گیرد. شما می توانید از این روش برای بارگذاری مستقیم اشیاء JSON دریافت شده از طریق سرویس REST بدون نیاز به تبدیل JSON به مدل اشیاء ، مقادیر تنظیم شده به عنوان پارامترهای موجود در فرمان SQL استفاده کنید. اگر JSON معتبر باشد ، هیچ خطری برای حمله تزریق به SQL وجود نخواهد داشت. اگر متن JSON به درستی قالب بندی نشده باشد ، OPENJSON هیچ دستوری را اجرا نمی کند.همچنین می توانید آرایه ای از ردیف های JSON را وارد کنید زیرا همان کد کار خواهد کرد. OPENJSON فقط آرایه ای از ردیف ها را به جای تک ردیف که باید درج شود ، برمی گرداند.

مورد کاربردی ۲ : بروز رسانی سطر جدول با استفاده از شیء JSON

ما می توانیم به راحتی هر جدول را بر اساس متن JSON به روز کنیم. شما فقط باید کل شیء JSON را ارسال کنید ، آن را با استفاده از عملکرد OPENJSON باز کنید و ردیف جدول را مطابق شکل زیر بروز رسانی کنید :

 

مورد کاربردی ۳ : حذف سطر جدول با استفاده از محتوای شیء JSON

اگر تصمیم به استفاده از این روش گرفتید ، می توانید سطر جدول را با استفاده از مثال زیر حذف کنید:

عملکرد JSON_VALUE شناسه را در مسیر id.$ دریافت می کند و سطر در جدول حذف می شود. می توانید به جای JSON_VALUE از OPENJSON استفاده کنید ، اما این رویکرد ساده تر است.

نتیجه گیری

عملکرد OPENJSON به شما کمک می کند تا به راحتی تجزیه ، باز و تبدیل شی JSON به ردیف های جدول را انجام دهید. با استفاده از OPENJSON می توانید سطرهای جدول را به راحتی با استفاده از متن JSON وارد یا به روز کنید.لازم نیست JSON را در لایه نرم افزار تجزیه کنید ، نیازی به ارسال خصوصیات به عنوان پارامترهای SQL نیست ، اگر JSON معتبر داشته باشید ، خطر حملات تزریق SQL وجود نخواهد داشت.این احتمالاً ساده ترین و مطمئن ترین روش برای وارد کردن اسناد JSON در Sql Server است.

 

موفق باشید

پاسخ دهید

آدرس ایمیل شما منتشر نخواهد شد.