شماره تماس 09336863931 | 09178169907 پست الکترونیک info@provid.ir

دریافت داده های JSON از کوئری های SQL Server – قسمت دوم

با سری آموزش “دریافت داده های JSON از کوئری های SQL Server – قسمت دوم” از وبسایت پرووید در خدمت شما هستیم. به ادامه ی مطلب بروید.

دریافت داده های JSON از SQL Server

کد زیر Action Method ی را نشان می دهد که با استفاده از دستورات ساده ی ADO.NET که قالب TSQL یک Command را به سمت سرور فرستاده و داده ها در قالب JSON دریافت می کنند. کلمه ی کلیدی FOR JSON AUTO در پایان دستورات باعث می شود که داده ها به صورت JSON برگرداننده شوند.


Public Function GetJson() As String
Dim cn As SqlConnection
Dim cmd As SqlCommand
Dim rdr As SqlDataReader
Dim res As String = String.Empty

cn = New SqlConnection("…connection string…")
cmd = cn.CreateCommand()
cmd.CommandText = "Select * " &
" From Customers " &
"FOR JSON AUTO;"
cn.Open()
rdr = cmd.ExecuteReader()
rdr.Read()
res = rdr(0)
cn.Close()

Return res
End Function

با فرض اینکه جدول Customers حاوی دو سطر باشد، دستورات بالا داده هایی شبیه به زیر را بر می گردانند.


[{""Id"":1,""FirstName"":""Peter"",""LastName"":""Vogel"",""BirthDate"":""1953-05-31""},
{""Id"":2,""FirstName"":""Jan"",""LastName"":""Vogel"",""BirthDate"":""1955-04-08""}]"

برای دریافت داده ها به صورت تکی (بدون دریافت در قالب یک آرایه) کافی است از کلمه ی کلیدی Without_Array_Wrapper مانند کد زیر استفاده کنید:


Select *
From Customers
Where Id = 1
FOR JSON AUTO, Without_Array_Wrapper;

خروجی کد بالا چیزی شبیه به زیر خواهد بود:


"{""Id"":1,""FirstName"":""Peter"",""LastName"":""Vogel"",""BirthDate"":""1953-05-31""}"

دقت کنید که اگر از کلمه ی کلیدی Without_Array_Wrapper استفاده کردید ولی داده های مربوط به بیش از یک سطر را دریافت کردید (مثلاً شرط Where Id = 1

را حذف کنید.)، هیچ خطایی ایجاد نمی شود ولی داده های دریافتی ممکن است برای هیچ کلاینتی معنا نداشته باشند.

می توانید برای داده های دریافتی یک نام در نظر بگیرید. برای مثال، کد زیر اطلاعات دریافتی را در یک Object به اسم Customers قرار داده است. این کار با استفاده از کلمه ی کلیدی Root انجام می شود.


Select *
From Customers
Where Id = 1
FOR JSON AUTO, Root('Customers')

نتیجه ی دستور بالا چیزی شبیه به داده های زیر خواهد بود:


"{""Customers"":[
{""Id"":1,""FirstName"":""Peter"",""LastName"":""Vogel"",""BirthDate"":""1953-05-31""},
{""Id"":2,""FirstName"":"""",""LastName"":""Vogel"",""BirthDate"":""1955-04-08""}
]
}""

نظر بدهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *