تبدیل کردن DataTable ها به JSON در استفاده از سرویس ها را در این قسمت از وبسایت آموزش برنامه نویسی پرووید دانلود کنید.

تبدیل کردن DataTable ها به JSON در استفاده از سرویس ها

فرض کنید در نرم افزاری که از وب سرویس ها استفاده می کند از DataSet ها در ADO.NET برای خواندن داده ها و ارسال آنها به مصرف‌کنندگان آن سرویس استفاده میکنید. داده ها در قالب XML ارسال می‌شوند. و همچنین فرض کنید آن وب سرویس هم اکنون نیازمند ارسال داده ها با استفاده از JSON می باشد. در ابتدا ممکن است به تبدیل کردن نتایج Query به داده های JSON فکر کنید. این کار با استفاده از قابلیت های جدید SQL Server به راحتی قابل انجام است اما موضوع مهم تر اینکه برای تبدیل کردن داده های وب سرویس خود از XML به JSON نیاز به این قابلیت ندارید. در ادامه روش انجام این کار را به صورت عملی به شما آموزش خواهیم داد.

در ابتدای کار نیازمند استخراج DataTable ی که سطرهای DataSet را در درون خودش قرار داده است می باشید.

Dim dt As DataTable
dt = MyDataSet.Tables("Customers")

پس از آن یک شی از کلاس JsonSerializer ایجاد کنید.

Dim js As JsonSerializer
js = JsonSerializer.CreateDefault

پس از ایجاد این شی میتوانید پروپرتی هایی از این شی را تنظیم کنید تا JSON خروجی بر اساس فرمت مورد نظر شما ساخته شود.

در ادامه DataTable و JsonSerializer را به متد FromObject پاس دهید. متد FromObject تمامی محتویات و سطر های موجود در DataTable را به آرایه ای از نوع JToken تبدیل خواهد کرد. کد زیر نحوه انجام این کار را به شما نشان می دهد.

Dim rows As JArray
rows = JArray.FromObject(dt, js)

 پس از انجام این کار می توانید تمامی محتویات را به سمت مصرف کننده سرویس تان ارسال کنید.

Return rows.ToString()

علاوه بر این کار می توانید با استفاده از LINQ فقط سطرهایی که مد نظرتان هست را انتخاب کرده و به سمت مصرف کننده سرویس بفرستید. برای مثال در کد زیر اولین سطر انتخاب شده و به سمت مصرف کننده سرویس ارسال میشود.

Dim row As JToken
row = rows.FirstOrDefault
Return row.ToString

دیدگاهتان را بنویسید

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