از هر دو فرمت JSON و XML میتوان برای دریافت داده از سرور استفاده کرد. این دو فرمت توانایی کار با XMLHttpRequest را دارند و در اکثر زبان های برنامه نویسی مورد استفاده هستند. ساختاری کاملا درختی و قابل فهم برای انسان دارند.
XML چیست؟
XML مخفف Extensible Markup Language و به معنای زبان نشانهگذاری گسترش پذیر است. از این جهت به این زبان گسترش پذیر میگویند که شما به راحتی میتوانید هر تگ دلخواهی را تعریف کنید. این ابزار برای دسته بندی و انتقال دادهها استفاده میشود و در ظاهر سایت هیچ اثری ندارد.
تفاوت XML و HTML
هدف xml انتقال و جابهجایی داده با تمرکز بر مفهوم آن است. درحالی که html برای نمایش دادهها با تاکید بر ظاهر آن بهوجود آمده است.
همچنین تگهای xml از قبل تعریف نشدهاند و همین موضوع باعث شده این زبان بسیار منعطف و قابل توسعه باشد. برای مثال در HTML تگهای h1،p و… از قبل تعریف شدهاند اما در xml شما میتوانید تگ موردنیاز خود را ایجاد کنید.
کاربرد xml چیست؟
XML اطلاعات را بدون قالببندی خاصی در خود ذخیره میکند. همین موضوع باعث میشود در هر سیستمی قابل حمل باشد و برای نمایش آن نیاز به سخت افزار یا نرمافزار خاصی نباشد. این انعطاف باعث شده در برنامهنویسی وب و موبایل مورد استفاده قرار بگیرد.
استفاده از XML :
یکی دیگر از کاربردها، این است که شما میتوانید متون دلخواه خود را در قالب یک فایل xml ذخیره کنید، سپس با کمک html بدون توجه به محتوا، به طراحی ظاهر بپردازید. در آخر با کمک چند خط کد جاوا اسکریپت، متن های xml را در قالب html نمایش دهید. این کار باعث میشود هر زمان که نیاز است بتوانید متن ها را بدون تغییر ظاهری و کدهای html تغییر دهید.
نمونهای از کد XML
در ادامه نمونهای از کد XML را مشاهده میکنید. همانطور که گفته شد، نویسنده به راحتی میتواند تگهای دلخواهی با توجه به نیاز خود ایجاد کند.
کافیست notepad را باز کرده و کد بالا را در آن بنویسید. سپس کد را با پسوند xml. ذخیره کنید. این کد در همهی مرورگرها قابل اجراست.
در این کد به کمک تگ دلخواه breakfast_menu یک منو برای صبحانه ایجاد شده است. نکته ای که باید به آن توجه کنید این است که کدهای xml خروجی خاصی ندارند.
جیسون چیست؟
جیسون معادل اختصاری عبارت JavaScript Object Notation به معنی «نمادگذاری اشیا در جاوا اسکریپت» است. جیسون یک قالب استاندارد باز است که امکان تبادل دادهها در وب با استفاده از جفت های خصوصیت و کلید را ممکن ساخته است. این توضیح ممکن است تا حدودی پیچیده به نظر بیاید؛ پس در ادامه آن را اندکی بیشتر توضیح میدهیم.
فرض کنید که شخصی یک بالون دارد و شما آن را میخواهید. یکی از روشهای ارسال بالون این است که فرد دیگر عملاً آن را بستهبندی کند و از طریق پست برای شما ارسال نماید. اما یک روش دیگر آن است که فرد خصوصیات بالون خود را برای شما توضیح دهد تا شما بتوانید همان بالون را بدون دسترسی عملی فیزیکی به آن، به طور دقیق بازسازی نمایید.
بالون آن فرد میتواند خصوصیاتی از قبیل جنس: پلاستیک، رنگ: قرمز، قطر: 25 سانتیمتری، گاز: هلیوم داشته باشد. این چهار جفت خصوصیت: کلید برای این که بتوانید بالون را تجسم کنید کافی هستند.
جیسون نیز در زمان ارسال دادهها بر روی اینترنت به همین ترتیب عمل میکند.
استفاده از JSON:
مزیت جیسون چیست؟
جیسون نخستین قالبی نیست که از جفت های خصوصیت و کلید برای تبادل دادهها بر روی اینترنت استفاده میکند. فناوریهای مختلفی در این زمینه وجود دارند که ممکن است حتی برخی از آنها مانند XML را نیز بشناسید. جیسون و ایکسامال تقریباً به روش مشابهی عمل میکنند. پس چرا باید جیسون را بر ایکسامال ترجیح بدهیم؟
در وب امروز بارگذاری asynchronous (غیر همزمان و یا در مواردی نامتقارن نامیده میشود) دادهها بسیار مهم است. به بیان دیگر صفحههای وب میخواهند قادر باشند تا دادهها را بدون نیاز به بارگذاری مجدد کل صفحه به کاربر ارسال نمایند. نتیجه چنین امکانی، ایجاد تجربه مرور روانتر و مطلوبتر برای کاربر است. جیسون برای ارسال و دریافت غیر همزمان دادهها عالی است، زیرا ساده است و استفاده از آن آسان است.
اما ایکسامال نیز همین کار را انجام میدهد! پس چرا برخی افراد جیسون را به آن ترجیح میدهند؟
یکی از پاسخهای ممکن به این سؤال شاید در نام جیسون نهفته باشد: نمادگذاری اشیای جاوا اسکریپت. جیسون معمولاً همراه با جاوا اسکریپت شناسایی میشود که یکی از رایجترین زبانهای برنامهنویسی دنیا است. از آنجا که جیسون زیرمجموعهای از جاوا اسکریپت است، برای کسانی که جاوا اسکریپت را میدانند نیاز به یادگیری موارد زیادی در زمان استفاده از جیسون وجود نخواهد داشت.
دلیل دیگر برای این محبوبیت جیسون آن است که خوانایی آن بالاتر از ایکسامال است. البته وقتی برای مدتی برای با ایکسامال کار کنید، استفاده از آن را نیز آسان خواهید یافت؛ اما نگاهی گذرا به فایل ایکسامال کاربر را با انبوهی از تگها و موارد توضیحی روبرو میکند. در مقابل جیسون تمیزتر است و افراد مبتدی آن راحتتر درک میکنند. از طرف دیگر با انواع دادههای مقدماتی خود تا حدودی انعطافپذیری بیشتری ارائه میکند.
ظاهر جیسون چگونه است؟
جیسون تنها یک سری از جفت های خصوصیت و کلید است که میتوان در صورت لزوم آنها را به صورت تو در تو نوشت. برای مثال اگر دادههای ما در مورد یک شخص باشند، این شخص را میتوان به وسیله دادههای جیسون زیر نمایش داد:
هر خط با یک خصوصیت آغاز میشود و با علامت دو نقطه (:) ادامه مییابد، سپس مقدار خصوصیت ذکر میشود. این مقدار همان طور که در مورد خصوصیت شماره تلفن در مثال فوق مشاهده میکنید، میتواند یک آرایه باشد. همچنین مقدار یک خصوصیت همان طور که در مورد خصوصیت آدرس در مثال فوق میبینید، میتواند خود جفتهایی دیگر از خصوصیت-کلید باشد. این حالت یک شیء نامیده میشود.
برای مقایسه در ادامه همان دادهها با استفاده از زبان XML تنظیم شدهاند:
XML و JSON
از هر دو فرمت JSON و XML میتوان برای دریافت داده از سرور استفاده کرد. در نمونه مثال هایی که در زیر آورده شده است (یکی با JSON و دیگری با XML) هر دو یک شی employees را تعریف میکنند که اطلاعات سه کارمند در آن قرار گرفته است :
شباهت های JSON و XML
دو فرمت JSON و XML دارای نقاط اشتراکی هستند که آنها را بهم شبیه کرده است :
تفاوت های JSON و XML
دو فرمت JSON و XML در بعضی موارد با هم متفاوت اند. این تفاوت ها عبارت اند از :
چرا JSON از XML بهتر است ؟
XML در مقایسه با JSON تجزیه آن دشوارتر است. این در حالی است که JSON را میتوان به سادگی به شی ایی در جاوا اسکریپت تبدیل کرد. برای اپلیکیشن هایی که از AJAX استفاده میکنند JSON سریعتر از XML است.
XML بسیار سخت تر از JSON تجزیه (parse) می شود.
همچنین JSON می تواند به شی جاوا اسکریپت تبدیل شود.
برای برنامه های AJAX، فرمت JSON سریع تر و راحت تر از XML است.
: API
API مخفف application programming interface (رابط برنامهنویسی نرمافزار) واسطهای است بین یک کتابخانه با برنامههایی که از آن کتابخانه تقاضای سرویس میکنند .
به صورت ساده و قابل فهم، API ها مثل function هایی هستند که در یک سرور (یا سیستم عامل) وجود دارد و یک برنامه نویس در برنامه خود میتواند آنها را فراخوانی و استفاده کند بدون اینکه به سورس و نحوه عملکرد آن دسترسی داشته باشد.
وب سرویس و API چیست؟
وب سرویس به زبان ساده یعنی با استفاده از یک یا چند خط کدنویسی به زبان های برنامه نویسی مختلف، می توان دستورات متنوعی را به صورت آرگومان ارسال نمود و درخواست انجام کاری را کرد.
SOAP یا Simple Object Access Protocol
یکی دیگر از استانداردهای مهم و کاربردی در وب سرویس ها استاندارد SOAP میباشد که این پروتکل نیز همانند XML قادر است بصورت مشترک باعث اتصال موفق برنامه ها با وب سرویس گردد. در واقع پیغام های ایجاد و ارسال شده SOAP عامل اصلی و ایجاد کننده اتصال وب سرویس میباشند. بعد از اتصال پیغام بر روی بستر SOAP در صورتی که پیغام برای وب سرویس دارای مفهوم عملیاتی باشد با توجه به توابع تعریف شده دستور اجرا و نتیجه آن مجددا بر روی قالب پیغام SOAP به درخواست کننده ارسال میگردد.
UDDI یا Universal Description – Discovery and Integration
این استاندارد حاوی یک فایل مبتنی بر XML میباشد که توسط آن شرکت ها به معرفی اتصال وب سرویس ها اقدام میکنند. از معروفترین شرکت هایی به استفاده و توسعه این استاندارد میپردازند مایکروسافت میباشد. شرکت های استفاده کننده از این فایل و استاندارد میتوانند سطح دسترسی آن را به راحتی حتی جهت معرفی در اختیار عموم قرار دهند یا شرکت های خاص.
WSDL یا Web Service Description Language
از دیگر استاندارد های مهم که کاربرد بسیار فراوانی در وب سرویس ها دارد استاندارد WSDL میباشد. این استاندارد نیز همانند UDDI دارای یک فایل برای هر وب سرویس میباشد که این فایل با فرمت XML بوده و به صورت کلی نحوه استفاده از وب سرویس را شرح میدهد. در این فایل عناوین مهمی از جمله اینکه پورتهای خروجی و وردی وب سرویس چه پورت تعیین شده است، وجود دارد. استاندارد WSDL در کنار تمامی وب سرویس ها این فایل را ایجاد و در اختیار کاربر قرار میدهند تا به راحتی به مستندات وب سرویس دسترسی داشته باشند و بتوانند از آن استفاده کنند.
تولید فایل xml روی سرور با PHP
تولید فایل xml روی سرور با ASP
برای ساخت یک XML response سرور – به سادگی کد زیر را بنویسید و آن را به عنوان یک فایل ASP در سرور وب ذخیره کنید:
تولید XML از یک پایگاه داده
XML را می توان با استفاده از یک پایگاه داده بدون هیچ نرم افزاری XML نصب کرد.
برای ایجاد یک XML database response از سرور، به سادگی کد زیر را بنویسید و آن را به عنوان یک فایل ASP در سرور وب ذخیره کنید: