درخواست های ارتباط
جستجو
    لیست دوستان من
    صندوق پیام
    همه را دیدم
    • در حال دریافت لیست پیام ها
    صندوق پیام
    رویدادها
    همه را دیدم
    • در حال دریافت لیست رویدادها
    همه رویدادهای من

    تا 75 درصد تخفیف ویژه شب یلدا بر روی کلیه محصولات وب سایت توسینسو فقط تا 30 آذر

    مانده تا پایان تخفیف ها

    تخفیف های وب سایت
    همه تخفیف ها

    عضویت در

    کانال تلگرام

    توسینسو

    اطلاعات مطلب
      مدرس/نویسنده
      مهدی عادلی فر
      امتیاز: 144149
      رتبه:6
      117
      196
      285
      1466
      مهدی عادلی، بنیان گذار TOSINSO. کارشناس ارشد نرم افزار کامپیوتر از دانشگاه صنعتی امیرکبیر و #C و جاوا و اندروید کار می کنم. در زمینه های موبایل و وب و ویندوز فعالیت دارم و به طراحی نرم افزار و اصول مهندسی نرم افزار علاقه مندم. پروفایل کاربر
      دوره های مرتبط
      دوره های توسینسو دوره آموزشی برنامه نویسی اندروید با زبان جاوا به زبان ساده
      دوره آموزشی برنامه نویسی اندروید با زبان جاوا به زبان ساده
      مدرس: مهدی عادلی فر
      این دوره را در 27 قسط خریداری کنید
      دوره آموزشی برنامه نویسی به زبان پرل بصورت پروژه محور
      دوره آموزشی برنامه نویسی به زبان پرل بصورت پروژه محور
      مدرس: ایمان جوادی
      این دوره را در 13 قسط خریداری کنید
      دوره آموزشی مقدماتی برنامه نویسی جاوا به زبان ساده
      دوره آموزشی مقدماتی برنامه نویسی جاوا به زبان ساده
      مدرس: مهدی عادلی فر
      این دوره را در 17 قسط خریداری کنید
      دوره آموزشی برنامه نویسی پیشرفته زبان سی شارپ
      دوره آموزشی برنامه نویسی پیشرفته زبان سی شارپ
      مدرس: حسین احمدی
      این دوره را در 78 قسط خریداری کنید
      دوره آموزشی طراحی رابط کاربری با JavaFX
      دوره آموزشی طراحی رابط کاربری با JavaFX
      مدرس: حسام رسولیان
      این دوره را در 13 قسط خریداری کنید
      دوره متوسطه برنامه نویسی به زبان جاوا به زبان ساده
      دوره متوسطه برنامه نویسی به زبان جاوا به زبان ساده
      مدرس: مهدی عادلی فر
      این دوره را در 18 قسط خریداری کنید
      ساخت و مدیریت ربات تلگرام از صفر با زبان سی شارپ
      ساخت و مدیریت ربات تلگرام از صفر با زبان سی شارپ
      مدرس: مهدی عادلی فر
      این دوره را در 2 قسط خریداری کنید
      دوره آموزشی ساخت ربات تلگرام
      دوره آموزشی ساخت ربات تلگرام
      مدرس: کاظم تقندیکی
      این دوره را در 8 قسط خریداری کنید
      دوره آموزشی Exploit نویسی به زبان Perl
      دوره آموزشی Exploit نویسی به زبان Perl
      مدرس: ایمان جوادی
      این دوره را در 7 قسط خریداری کنید
      دوره آموزشی پردازش متن با زبان برنامه نویسی پایتون
      دوره آموزشی پردازش متن با زبان برنامه نویسی پایتون
      مدرس: کاظم تقندیکی
      این دوره را در 20 قسط خریداری کنید
      دوره آموزشی اسکریپت نویسی Batch یا Batch Scripting در ویندوز به زبان ساده
      دوره آموزشی اسکریپت نویسی Batch یا Batch Scripting در ویندوز به زبان ساده
      مدرس: حسین احمدی
      این دوره را در 11 قسط خریداری کنید
      دوره آموزشی مقدماتی برنامه نویسی به زبان سی شارپ
      دوره آموزشی مقدماتی برنامه نویسی به زبان سی شارپ
      مدرس: حسین احمدی
      این دوره را در 17 قسط خریداری کنید
      دوره آموزشی برنامه نویسی مقدماتی پایتون به زبان ساده
      دوره آموزشی برنامه نویسی مقدماتی پایتون به زبان ساده
      مدرس: حسین احمدی
      این دوره را در 23 قسط خریداری کنید
      دوره تخصصی آموزش متن کاوی با ابزار NLTK
      دوره تخصصی آموزش متن کاوی با ابزار NLTK
      مدرس: کاظم تقندیکی
      این دوره را در 11 قسط خریداری کنید
      دوره آموزشی برنامه نویسی WPF در ویژوال استودیو
      دوره آموزشی برنامه نویسی WPF در ویژوال استودیو
      مدرس: امیر حسین فضلیخانی
      این دوره را در 12 قسط خریداری کنید

      کار با داده های json در جاوا

      تاریخ 27 ماه قبل
      نظرات 0
      بازدیدها 452
      سلام به همه دوستان Itpro. امروزه به روش های مختلفی می توان داده ها را بین کامپیوتر های مختلف و حتی برنامه های مختلف انتقال داد. یکی از راه هایی که بیشترین استفاده را برای انتقال داده ها دارد انتقال داده ها بین کلاینت و سرور می باشد. به این صورت که داده هایی بر روی سرور ذخیره شده است. کلاینت برای این که این داده ها را به کاربر نشان دهد آنها را از سرور دریافت می کند یا حالتی دیگر آن است که کلاینت می خواهد داده هایی را در سرور ذخیره کند. کلاینت می تواند یک اپ موبایل و یا یک وب سایت و یا یک برنامه ویندوزی باشد. برای این کار داده ها را به سرور می فرستد. شکل و فرمت داده هایی که بین سرور و کلاینت تبادل می شوند بسیار مهم است. چند فرمت استاندارد برای تبادل داده ها وجود دارد که از آنها بسیار استفاده می شود. معروف ترین این فرمت ها xml, json می باشد. در حال حاضر می توان گفت که json در حال محبوب تر شدن است.
      داده های json به شکل زیر می باشند.
      [{"Id":25,"Name":"Hosein","Family":"Ahmadi"},{"Id":36,"Name":"Website","Family":"Itpro"},{"Id":42,"Name":"Mehdi","Family":"Adeli"}]
      
      در این مطلب قصد داریم که بگوییم در زبان جاوا چگونه می توان داده های معمولی را به داده های json تبدیل کرد و چگونه داده های json را به داده های معمولی تبدیل نمود. برای این کار روش های مختلفی وجود دارد. به خاطر این که زبان جاوا یک زبان شی گرا می باشد پس داده ها نیز در قالب شی و کلاس در این زبان ذخیره می شود. بهترین روش این است که داده های json به طور مستقیم به اشیائ تبدیل شوند و برعکس اشیاء جاوا نیز به طور مستقیم به متن json تبدیل گردند. یکی از کتابخانه هایی که این کار را به نحو احسن انجام می دهد کتابخانه Jackson می باشد ما در این مطلب از این کتابخانه استفاده می کنیم که باید فایل jar آن را از این لینک دانلود کرده و به برنامه اضافه کنیم. بعد از این که این کتابخانه به برنامه اضافه شد نوبت به نوشتن کد می رسد. در ادامه بر روی مثالی کار می کنیم که نشان دهیم چگونه این عمل تبدیل انجام می شود.

      ساخت پروژه و اقدامات اولیه


      برای شروع کار یک پروژه ساده جاوا می سازیم که یک تابع main هم داشته باشد.
      همچنین ما برای این که یک مدل داده های داشته باشیم یک کلاس دیگر هم ایجاد می کنیم تا بتوانیم داده ها را در قالب این مدل تبدیل نماییم. این مدل به شکل زیر خواهد بود
      static class Model{
          public Model() {
          }
      
          public Model(int id, String name, String family) {
              Id = id;
              Name = name;
              Family = family;
          }
      
          public int Id;
          public String Name;
          public String Family;
      }
      
      
      همانطور که می بینید در مدل بالا ما سه عدد فیلد داریم که آنها را می توانیم حتی از طریق constructor هم مقدار دهی نماییم.
      به خاطر این که می خواهیم از این مدل در داخل تابع main استفاده کنیم و تابع main هم از Static است پس این کلاس را هم استاتیک تعریف می کنیم.

      تبدیل داده اصلی به داده json


      برای این کار در تابع main چند شئ از کلاس گفته شده می سازیم و آن را با استفاده از تبدیل کننده به رشته json ذخیره می کنیم. مانند کد زیر
      public static void main(String[] args){
          ObjectMapper mapper=new ObjectMapper();
          Model model=new Model();
          model.Id=25;
          model.Family="Adeli";
          model.Name="Mehid";
      try {
          String value=mapper.writeValueAsString(list);
          System.out.println(value);
      } catch (IOException e) {
          e.printStackTrace();
      }
      
      
      
      در کد بالا از کلاس ObjectMapper یک شئ ساخته ایم. این شئ همه ی اعمال تبدیل به json و برعکس را می تواند انجام دهد. دقت داشته باشید که اگر کتابخانه Jackson را به برنامه اضافه نکرده باشید این شئ خطا خواهد داد. سپس یک شئ از کلاس Model که همان مدل داده ای ما است ساخته ایم و فیلد های آن را مقدار دهی کرده ایم. بعد از آن تنها کاری که کرده ایم این است که متد writeValueAsString را فراخوانی کرده ایم. این متد یک شئ را گرفته و تبدیل به داده json می کند و رشته را برمی گرداند که ما رشته را در یک متغیر به نام value ریخته ایم و آن را در خروجی نمایش می دهیم . خروجی برنامه بالا به شکل زیر خواهد بود
      {"Id":25,"Name":"Mehid","Family":"Adeli"}
      
      اگر بخواهید که خروجی json را در فایل ذخیره کنید می توانید از متد writeValue مربوط به mapper استفاده کنید. که شکل آن در زیر آورده شده است
      mapper.writeValue(new File("c:\\file.json"), obj);
      
      
      حال می توان این داده ها را در بستر اینترنت تبادل نمود

      تبدیل داده های json به اشیاء جاوا


      برای این که داده های که از سرور دریافت کرده ایم به فرمتی دربیاریم که بتوانیم در جاوا از آن استفاده کنیم باید اشیائی از داده های دریافتی بسازیم. برای این کار به شکل زیر عمل می کنیم.
      public static void main(String[] args){
          ObjectMapper mapper=new ObjectMapper();
      try {
          String jsonValue="[{\"Id\":25,\"Name\":\"Mehdi\",\"Family\":\"Adeli\"},{\"Id\":36,\"Name\":\"Mohammad\",\"Family\":\"Nasiri\"},{\"Id\":42,\"Name\":\"Hosein\",\"Family\":\"Ahmadi\"}]";
          ArrayList<Model> convertedList=mapper.readValue(jsonValue,new TypeReference<ArrayList<Model>>(){});
      for (Model m : convertedList) {
          System.out.println(m.Name);
      }
      
      } catch (IOException e) {
          e.printStackTrace();
      }
      
      
      در این کد ما یک رشته به نام jsonValue داریم که داده های json را داخل آن ریخته ایم. برای این که داده های json را به شئ تبدیل کنیم از متد readValue استفاده می کنیم. در مثال بالا ما یک لیست از داد های مدل قبل داریم. متد readValue دارای دو ورودی است یکی داده json و دیگری کلاسی که باید مشخص کنیم که داده های json را به آن تبدیل کند. برای مثال در کد بالا می خواهیم داده ها را به یک ArrayList از نوع Model تبدیل کنیم. دقت داشته باشید که برای داده هایی که لیستی و مجموعه ای هستند باید مثل شکل بالا کار کنیم ولی برای داده هایی که پیچیده نیستند مانند داده های یک کلاس به راحتی می توان از شکل ساده آن استفاده کرد یعنی فرض کنید که داده ما یک شئ از کلاس Model باشد در این صورت در ورودی دوم Model.class را می نویسیم. خروجی کد بالا به شکل زیر خواهد بود
      Mehdi
      Mohammad
      Hosein
      
      امیدوارم این مطلب برای شما مفید بوده باشد Itpro باشید



      نویسنده: مهدی عادلی فر
      منبع: Itpro
      هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد.

      برچسب ها
      مطالب مرتبط

      در حال دریافت اطلاعات

      نظرات
      هیچ نظری ارسال نشده است

        برای ارسال نظر ابتدا به سایت وارد شوید