عنوان:

‫نگاشت JSON به کلاس‌های معادل آن


نویسنده: وحید نصیری
تاریخ: ۱۳۹۰/۰۵/۱۷ ۲۲:۳۰:۰۰
آدرس: www.dntips.ir

یکی از مواردی که عموما در برنامه نویسی با آن سر و کار داریم، parse اطلاعات با فرمت‌های مختلف است. از CSV تا XML تا ... JSON .
در مورد کار با XML در دات نت فریم ورک، فضاهای نام مرتبط زیادی وجود دارند؛ برای مثال System.Xml.Linq و System.Xml . همچنین یک روش دیگر هم برای کار با اطلاعات XML ایی در دات نت وجود دارد. می‌شود کلاس معادل یک فایل XML را تولید و سپس اطلاعات آن‌را به این کلاس نگاشت کرد. اطلاعات بیشتر : (^). این برنامه کار خود مایکروسافت است.
در مورد JSON از دات نت سه و نیم به بعد کارهایی صورت گرفته مانند : (^). اما آنچنان دلچسب نیست. جهت رفع این خلاء کتابخانه‌ی سورس باز و بسیار کاملی در این زمینه به نام JSON.NET تهیه شده که از این آدرس قابل دریافت است: (^)
و خبر خوب اینکه امکان تهیه کلاس‌های معادل اطلاعات JSON ایی هم مدتی‌است توسط برنامه نویس‌های مستقل تهیه شده است. یا می‌توان از امکانات توکار دات نت استفاده کرد یا از کتابخانه‌‌هایی مانند JSON.NET یا از هیچکدام! می‌توان یک راست کل اطلاعات JSON ایی دریافتی را به یک یا چند کلاس معادل آن نگاشت کرد:
  • و یا یک ابزار آنلاین مشابه: json2csharp

نظرات

  • مهمان در ۱۳۹۰/۰۵/۱۸ ۰۰:۲۸:۰۷
    آقای نصیری من فقط وقتی که می خواهم با jQuery یک AJAX Post بزنم از JSON استفاده می کنم که آن هم خیلی عملا در گیرش نیستم (از JSON.Stringfy  که معرفی کردید استفاده می کنم.)
    JSON چه کاربردها و استفاده هایی دارد ؟
  • وحید نصیری در ۱۳۹۰/۰۵/۱۸ ۰۰:۵۵:۱۸
    منهای کاربردهای Ajax ایی، هستند برنامه‌هایی که از JSON برای تبادل اطلاعات استفاده می‌کنند (این وب سرویس‌های غنی دات نت که به این سهولت در زبان‌های دیگر در دسترس نیست). مثلا برنامه utorrent یک API مبتنی بر JSON دارد (utorrent web-api). به این ترتیب می‌شود به آن فایل اضافه کرد، کم کرد، درخواست دریافت داد، آمار درصد دریافت فایل‌ها رو گرفت و غیره. اینجا است که نیاز پیدا می‌کنید بتونید JSON رو دقیق Parse کنید.
    یا مثلا گوگل یک سری API خاص خودش را دارد و بعضی از این‌ها فقط خروجی JSON دارند: google data
  • مهمان در ۱۳۹۰/۰۵/۱۸ ۰۸:۰۰:۴۱
    ممنون
    استفاده کردیم
    ;)
  • وحید نصیری در ۱۳۹۰/۰۵/۱۸ ۱۶:۳۰:۲۲
    همچنین Raven DB هم مبتنی بر JSON است.