![]() |
|
JSON using C#.NET Part2 - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم لغة السي شارب C#.NET (http://vb4arb.com/vb/forumdisplay.php?fid=175) +--- قسم : قسم مقالات C#.NET (http://vb4arb.com/vb/forumdisplay.php?fid=177) +--- الموضوع : JSON using C#.NET Part2 (/showthread.php?tid=21339) |
JSON using C#.NET Part2 - Sajad - 10-08-17 بسم الله الرحمن الرحيم
((رب اشرح لي صدري ويسر لي امري واحلل عقدة من لساني يفقهوا قولي))
JSON using C#.NET Part2
كنا قد شرحنا في الجزء السابق JSON using C#.NET Part1 عن JSON من ناحية التعريف والمعنى والاستخدام وايضا أنوع البيانات المعتمدة فيها.
في هذا الجزء سنوضح كيف تقوم بالتعامل مع ملف JSON بلغة C#.NET من ناحية قراءة ملف JSON من الانترنت وكذلك رفع ملف نص JSON الى الانترنت.
أولا يجب عليك اضافة مكتبة Newtonsoft من NuGet الى المشرع وذلك من خلاله نستطيع التعامل مع ملفات JSON.
هنالك الكثير من المكتبات تستطيع من خلالها التعامل مع JSON لكن نحن سنتعامل مع المكتبة التي ذكرناها سابقا.
أولا: اضافة المكتبة Newtonsoft :
بعد ان تقوم بانشاء مشروع جديد من نوع Console Application اتبع هذه الخطوات لاضافة مكتبة Newtonsoft :
1-
2-
الى الان كل شي تمام. طيب نأتي الى كتابة الاكواد.
ثانيا: قراءة JSON string من الانترنت: سنقوم بقراءة بيانات الطقس من موقع yahoo من خلال ملف JSON من هذا الرابط: Yahoo weather api. ثم سنقوم بنسخ JSON string وتحويله الى Classes.
ثانيا: نقوم بعمل class جديد باتباع هذه الخطوات:
RightClick on project name->Add->Class->Add
ثم قم بمسح:
PHP كود : class Class1بعد مسح اسم الكلاس مع مع الاقواس سيبقى لدينا فقط اسم NameSpace وبداخلها سنقوم بادراج نص JSON على شكل Classes باتباع واحدة من هاتين الخطوتين:
هنالك طريقتين لتحويل نص JSON الى Classes:
1- استخدام موقع http://json2csharp.com
قم بنسخ نص JSON الى الموقع واضغط على Generate ثم انسخ الكلاسات الى داخل الــ NameSpace
أو استخدام هذه الطريقة السهلة والسريعة:
2- من داخل بيئة Visual Studio قم بأتباع الخطوات التالية:
Edit->Paste Special->Paste JSON as Classes
هذه الميزة تأتي فقط في حال كنت قد قمت بتنصيب Web Development اثناء تنصيب الــVisual Studio.
بعد عملية النسخ ستكون شكل الكلاسات داخل الـ NameSpace كالتالي:
PHP كود : using System;كما تلاحظون تم تحويل JSON string الى Classes. و بهذه الطريقة سنقوم بعمل DeserializeObject لنفس JSON string الذي سنقوم بقرائته من الويب الى الــ Classes ليسهل التعامل مع عناصر ملف الــ JSON.
1- نأتي الى كود القراءة:
PHP كود : using System;المهم هو هذا السطر:
PHP كود : var jsonObject = JsonConvert.DeserializeObject<Rootobject>(jsonString); هنا تم استخدام JsonConvert لعمل DeserializeObject لـ JSON string الى كلاس Rootobject حيث هذا الكلاس يعتبر الكلاس الاب الذي يتضمن على جميع الكلاسات الفرعية.
ومن خلال الــ Classes نستطيع الوصول الى أي Property بسهولة جدا كما هو موضح في سطريْ الطباعة داخل دالة ReadJson.
2- كود رفع بيانات الى الويب على شكل نص JSON:
لنفترض أننا نريد رفع معلومات ل 3 سيارات الى الويب. سنستخدم هذا الموقع http://posttestserver.com/post.php
لرفع المعلومات كـ JSON string سنقوم بانشاء الكلاس التالي:
PHP كود : class Carثم نكتب هذه الدالة:
PHP كود : async static void UploadJson(string uri)أهم نقطة هي في هذا السطر من الكود أعلاه:
PHP كود : var json = JsonConvert.SerializeObject(carList); حيث سيتم تحويل المعلومات في carList object الى JSON string.
قمت بطباعة الرسالة الواصلة لي من الويب لذا ستكون الناتج كالتالي:
PHP كود : Successfully dumped 0 post variables.وعند الذهاب الى الرابط الذي ظهر لنا في الناتج سنلاحظ المعلومات كـ JSON string كما في السطر المظلل. طبعا في كل تنفيذ سيختلف الرابط في الناتج.
اتمنى أني وفقت في ايصال المعلومة بصورة صحيحة رغم أني اخترصت الكثير.
المثال تجدونه في المرفقات.
RE: JSON using C#.NET Part2 - Sajad - 10-08-17 حياك الله اخي الطيب اسأل الله لك التوفيق RE: JSON using C#.NET Part2 - حريف برمجة - 11-08-17 جزاك الله خير ،، كفيت ووفيت ،، RE: JSON using C#.NET Part2 - Sajad - 11-08-17 وجزاك بالمثل شكرا لكم RE: JSON using C#.NET Part2 - الكاتب - 12-08-17 تسلم بارك الله فيك |