🔻المان های #JSON
🌀 یک فایل JSON دارای مولفه های بسیاری می باشد که شامل موارد زیر میباشد :
🟣 مورد اول ( [ )Array : در یک فایل JSON کروشه ( [ ) نشان دهنده ی یک ردیف JSON می باشد.
🟠 مورد دوم ( { )Objects : در یک فایل JSON این علامت ( } ) نشان دهنده ی یک آبجکت JSON می باشد.
🟢 مورد سوم Key : یک آبجکت JSON کلیدی است که فقط یک رشته می باشد. جفت های کلید/مقدار(value/key) یک آبجکت JSON را تشکیل می دهند.
🟡 مورد چهارم Value : هر کلید می تواند مقداری داشته باشد که این مقدار می تواند رشته ، integer یا double یا غیره باشد.
🖥 @FunProGraming
🌀 یک فایل JSON دارای مولفه های بسیاری می باشد که شامل موارد زیر میباشد :
🟣 مورد اول ( [ )Array : در یک فایل JSON کروشه ( [ ) نشان دهنده ی یک ردیف JSON می باشد.
🟠 مورد دوم ( { )Objects : در یک فایل JSON این علامت ( } ) نشان دهنده ی یک آبجکت JSON می باشد.
🟢 مورد سوم Key : یک آبجکت JSON کلیدی است که فقط یک رشته می باشد. جفت های کلید/مقدار(value/key) یک آبجکت JSON را تشکیل می دهند.
🟡 مورد چهارم Value : هر کلید می تواند مقداری داشته باشد که این مقدار می تواند رشته ، integer یا double یا غیره باشد.
🖥 @FunProGraming
🔶 اندروید چهار گروه مختلف برای اجرای داده #JSON ارائه می دهد که عبارتند از :
🔸JSONArray
🔸JSONObject
🔸JSONStringer
🔸JSONTokenizer
🖥 @FunProGraming
🔸JSONArray
🔸JSONObject
🔸JSONStringer
🔸JSONTokenizer
🖥 @FunProGraming
🟩 تجزیه ی #JSON
🔹 برای تجزیه ی JSON یک آبجکت از کلاس JSONObject ایجاد خواهیم کرد و یک رشته (string ) شامل داده ی JSON برای آن مشخص می کنیم.
سینتکس آن مانند زیر می باشد :
String in;
JSONObject reader = new JSONObject(in);
🔸 آخرین مرحله ، تجزیه ی JSON است. یک فایل JSON شامل آبجکت های مختلف با جفت های مختلف key/value و غیره می شود. بنابراین JSONObject دارای تابع مجزا برای تجزیه ی هر مولفه از فایل JSON می باشد. سینتکس آن به شکل زیر است :
JSONObject sys = reader.getJSONObject("sys");
country = sys.getString("country");
JSONObject main = reader.getJSONObject("main");
temperature = main.getString("temp");
🔹متد getJSONObject آبجکت JSON را گزارش می دهد. روش getString مقدار رشته ی یک کلید مشخص را گزارش می دهد (return می کند)
〽️ البته علاوه بر این متد ها، متد های دیگری برای تجزیه ی بهتر JSON توسط این کلاس ارائه می شوند ، که بعدا به انها خواهیم پرداخت.
🖥 @FunProGraming
🔹 برای تجزیه ی JSON یک آبجکت از کلاس JSONObject ایجاد خواهیم کرد و یک رشته (string ) شامل داده ی JSON برای آن مشخص می کنیم.
سینتکس آن مانند زیر می باشد :
String in;
JSONObject reader = new JSONObject(in);
🔸 آخرین مرحله ، تجزیه ی JSON است. یک فایل JSON شامل آبجکت های مختلف با جفت های مختلف key/value و غیره می شود. بنابراین JSONObject دارای تابع مجزا برای تجزیه ی هر مولفه از فایل JSON می باشد. سینتکس آن به شکل زیر است :
JSONObject sys = reader.getJSONObject("sys");
country = sys.getString("country");
JSONObject main = reader.getJSONObject("main");
temperature = main.getString("temp");
🔹متد getJSONObject آبجکت JSON را گزارش می دهد. روش getString مقدار رشته ی یک کلید مشخص را گزارش می دهد (return می کند)
〽️ البته علاوه بر این متد ها، متد های دیگری برای تجزیه ی بهتر JSON توسط این کلاس ارائه می شوند ، که بعدا به انها خواهیم پرداخت.
🖥 @FunProGraming
دوستانی که به مشاوره نیاز دارند برای اینکه برنامه نویسی وب و موبایل یادبگیرند به این ای دی شماره تماسشون را ارسال کنند
@moshavervipacademy
@moshavervipacademy
🔻متد های دیگر برای تجزیه بهتر #JSON
توسط کلاس ارائه شده در پست قبلی مربوط به متدها که می توانید در لیست زیر مشاهده کنید :
⚜ متد (get(String name :
این متد فقط مقدار را return می کند ، اما به شکل آبجکت
⚜ متد (getBoolean(String name :
این متد مقدار Boolean مشخص شده توسط کلید را return می کند
⚜ متد (getDouble(String name :
این متد مقدار double مشخص شده توسط کلید را return می کند
⚜ متد (getInt(String name :
این متد مقدار صحیح ( integer) مشخص شده توسط کلید را return می کند
⚜ متد (getLong(String name :
این متد مقدار طولی (long value) مشخص شده توسط کلید را return می کند
⚜ متد ()length :
این متد تعداد نگاشت های
نام / مقدار (name/value) در این آبجکت را return می کند
⚜ متد ()names :
این متد آرایه ای از نام های رشته ای در این آبجکت را return می کند
🖥 @FunProGraming
توسط کلاس ارائه شده در پست قبلی مربوط به متدها که می توانید در لیست زیر مشاهده کنید :
⚜ متد (get(String name :
این متد فقط مقدار را return می کند ، اما به شکل آبجکت
⚜ متد (getBoolean(String name :
این متد مقدار Boolean مشخص شده توسط کلید را return می کند
⚜ متد (getDouble(String name :
این متد مقدار double مشخص شده توسط کلید را return می کند
⚜ متد (getInt(String name :
این متد مقدار صحیح ( integer) مشخص شده توسط کلید را return می کند
⚜ متد (getLong(String name :
این متد مقدار طولی (long value) مشخص شده توسط کلید را return می کند
⚜ متد ()length :
این متد تعداد نگاشت های
نام / مقدار (name/value) در این آبجکت را return می کند
⚜ متد ()names :
این متد آرایه ای از نام های رشته ای در این آبجکت را return می کند
🖥 @FunProGraming
🔘 مزایای وردپرس
🟤 کاهش هزینه: علاوه بر راه اندازی کم هزینه سایت، دیگر نیازی نیست که برای هر تغییری که میخواهید در سایت انجام دهید، به شرکت طراح سایت خود مراجعه کنید. وردپرس این امکان را به شما میدهد که هر زمان خواستید، تغییرات خود را درون سایت ایجاد کنید، مطالب جدید در سایت منتشر کنید، کاربران خود را مدیریت کنید، به نظرات رسیدگی کنید و ….
🔴 ظاهر زیبا: هزاران قالب مخصوص وردپرس وجود دارد که میتوان انتخاب کرد و روی سایت پیادهسازی کرد. اما وردپرس امکان اینکه قالب سفارشی خود را طراحی و استفاده کنید را نیز دارد.
🟠 مدیریت آسان: میتوان سایت خود را در هر جا که هستید، چه با کامپیوتر و چه با موبایل، مدیریت کنید و نیازی به هیچ گونه برنامه جانبی ندارید.
🟢 ارتباط با شبکههای اجتماعی: وردپرس و افزونههای جانبی آن به شما این امکان را میدهند که به صورت خودکار سایت خود را به شبکههای اجتماعی بزرگ مانند توییتر، فیسبوک و یوتیوب متصل کرده و مشتریان خود را از تغییرات سایت خود باخبر سازید.
🟡 سئو عالی: وردپرس به صورت استاندارد کدنویسی شدهاست تا سئو سایت شما را هر چه بیشتر بهبود ببخشد تا در نتایج گوگل بهترین جایگاه را داشته باشید. البته سئو فقط به سیستم مدیریت محتوای انتخابی شما محدود نمیشود و موارد زیاد دیگری نیز در این بخش سهیم هستند. وردپرس به خودی خود موارد محدودی از سئو را دربردارد و میتوان با استفاده از پلاگینهای متعددی از جمله yoast seo و All in One SEO تا حد زیادی به رتبه وب سایت کمک کرد.
🟣 بروزرسانی رایگان: وردپرس یک سیستم مدیریت محتوای کاملاً رایگان است و در به روزرسانی و رفع مشکلات احتمالی فعال است. شما میتوانید تمام این به روز رسانیها را به صورت رایگان دریافت و نصب کنید
🔵 امنیت: وردپرس از امنیت بسیار بالایی برخوردار است. اما به دلیل اینکه امنیت یک مسئله نسبی است و هیچ وقت صد در صد نخواهد بود، وردپرس هر روز مشکلات وردپرس را بررسی میکند و در به روز رسانیها رفع میکند. علاوه بر تیم وردپرس، برنامهنویسهای زیادی در جهان هستند که روی امنیت وردپرس کار میکنند. علاوه بر اینکه وردپرس به خودی خود تا حد زیادی ایمن است، افزونههایی برای ایمن تر کردن سایت نیز وجود دارد تا سایت خود را امن تر کنید. اولین قدم برای افزایش امنیت وردپرس، تغییر آدرس ورود به پنل مدیریت آن میباشد.
⚪️ انعطافپذیری وردپرس: میتوان وردپرس را برای کاربری دلخواه خود ویرایش کرد. همچنین دارای هزاران افزونه وردپرس است که از طریق آنها میتوان انواع امکانات را به سایت خود اضافه کرد
🖥 @FunProGraming
🟤 کاهش هزینه: علاوه بر راه اندازی کم هزینه سایت، دیگر نیازی نیست که برای هر تغییری که میخواهید در سایت انجام دهید، به شرکت طراح سایت خود مراجعه کنید. وردپرس این امکان را به شما میدهد که هر زمان خواستید، تغییرات خود را درون سایت ایجاد کنید، مطالب جدید در سایت منتشر کنید، کاربران خود را مدیریت کنید، به نظرات رسیدگی کنید و ….
🔴 ظاهر زیبا: هزاران قالب مخصوص وردپرس وجود دارد که میتوان انتخاب کرد و روی سایت پیادهسازی کرد. اما وردپرس امکان اینکه قالب سفارشی خود را طراحی و استفاده کنید را نیز دارد.
🟠 مدیریت آسان: میتوان سایت خود را در هر جا که هستید، چه با کامپیوتر و چه با موبایل، مدیریت کنید و نیازی به هیچ گونه برنامه جانبی ندارید.
🟢 ارتباط با شبکههای اجتماعی: وردپرس و افزونههای جانبی آن به شما این امکان را میدهند که به صورت خودکار سایت خود را به شبکههای اجتماعی بزرگ مانند توییتر، فیسبوک و یوتیوب متصل کرده و مشتریان خود را از تغییرات سایت خود باخبر سازید.
🟡 سئو عالی: وردپرس به صورت استاندارد کدنویسی شدهاست تا سئو سایت شما را هر چه بیشتر بهبود ببخشد تا در نتایج گوگل بهترین جایگاه را داشته باشید. البته سئو فقط به سیستم مدیریت محتوای انتخابی شما محدود نمیشود و موارد زیاد دیگری نیز در این بخش سهیم هستند. وردپرس به خودی خود موارد محدودی از سئو را دربردارد و میتوان با استفاده از پلاگینهای متعددی از جمله yoast seo و All in One SEO تا حد زیادی به رتبه وب سایت کمک کرد.
🟣 بروزرسانی رایگان: وردپرس یک سیستم مدیریت محتوای کاملاً رایگان است و در به روزرسانی و رفع مشکلات احتمالی فعال است. شما میتوانید تمام این به روز رسانیها را به صورت رایگان دریافت و نصب کنید
🔵 امنیت: وردپرس از امنیت بسیار بالایی برخوردار است. اما به دلیل اینکه امنیت یک مسئله نسبی است و هیچ وقت صد در صد نخواهد بود، وردپرس هر روز مشکلات وردپرس را بررسی میکند و در به روز رسانیها رفع میکند. علاوه بر تیم وردپرس، برنامهنویسهای زیادی در جهان هستند که روی امنیت وردپرس کار میکنند. علاوه بر اینکه وردپرس به خودی خود تا حد زیادی ایمن است، افزونههایی برای ایمن تر کردن سایت نیز وجود دارد تا سایت خود را امن تر کنید. اولین قدم برای افزایش امنیت وردپرس، تغییر آدرس ورود به پنل مدیریت آن میباشد.
⚪️ انعطافپذیری وردپرس: میتوان وردپرس را برای کاربری دلخواه خود ویرایش کرد. همچنین دارای هزاران افزونه وردپرس است که از طریق آنها میتوان انواع امکانات را به سایت خود اضافه کرد
🖥 @FunProGraming
🔖 افزایش کارایی و شخصیسازی #وردپرس
📚قالبها ، تمها و افزونههای آمادهای به صورت تجاری یا رایگان برای کار کردن با این ابزار ارائه شدهاست که با استفاده از آن برخی کارهای متداول را آسانتر و در زمان کمتری میتوان پیادهسازی کرد.
🖇 به عنوان مثال برای راه اندازی یک فروشگاه اینترنتی در کنار سایت وردپرسی کافیست یکی از افزونههایی که برای این منظور طراحی شدهاند را به هسته وردپرس اضافه کرد.
🖇 به عنوان مثال افزونههای WooCommerce و EDD دو افزونه وردپرس هستند که برای راه اندازی فروشگاه اینترنتی جهت فروش کالای فیزیکی یا فایلهای دانلودی استفاده میشوند. همچنین قابلیت تبدیل شدن سایت به یک شبکه اجتماعی با افزونه قدرتمند Buddypress یا ایجاد یک تالار گفتگو یا انجمن با افزونه BBpress، در وردپرس وجود دارد. با توجه به فراوانی و تنوع افزونههای وردپرس تقریباً هر امکانی را میتوان به سایت وردپرسی اضافه کرد.
🖥 @FunProGraming
📚قالبها ، تمها و افزونههای آمادهای به صورت تجاری یا رایگان برای کار کردن با این ابزار ارائه شدهاست که با استفاده از آن برخی کارهای متداول را آسانتر و در زمان کمتری میتوان پیادهسازی کرد.
🖇 به عنوان مثال برای راه اندازی یک فروشگاه اینترنتی در کنار سایت وردپرسی کافیست یکی از افزونههایی که برای این منظور طراحی شدهاند را به هسته وردپرس اضافه کرد.
🖇 به عنوان مثال افزونههای WooCommerce و EDD دو افزونه وردپرس هستند که برای راه اندازی فروشگاه اینترنتی جهت فروش کالای فیزیکی یا فایلهای دانلودی استفاده میشوند. همچنین قابلیت تبدیل شدن سایت به یک شبکه اجتماعی با افزونه قدرتمند Buddypress یا ایجاد یک تالار گفتگو یا انجمن با افزونه BBpress، در وردپرس وجود دارد. با توجه به فراوانی و تنوع افزونههای وردپرس تقریباً هر امکانی را میتوان به سایت وردپرسی اضافه کرد.
🖥 @FunProGraming
📝 مشخصات #وردپرس
🔸نصب محلی
🔹هسته قابل حمل
🔸پشتیبانی از ساعت محلی
🔹 قابلیت gzip
🔸سطح دسترسی
🔹مشخصات کاربران
🔸پویا بودن و انعطافپذیری بالا
🔹دارای کتابخانه پلاگینهای وردپرس (رایگان)
🔸دارای کتابخانه قالبهای وردپرس (رایگان)
🔹 وردپرس شبکه (جهت راه اندازی سیستم وبلاگدهی با وردپرس)
🔸فهرستهای آبشاری و کرکرهای
🔹شخصیسازی قالبها، ابزارکها از پنل مدیریت
🔸ارسال و مدیریت دیدگاه
🔹راهاندازی تالار گفتگو
🔸راهاندازی فروشگاه اینترنتی
🔹فروشگاه فایل
🔸امکان استفاده از قالبهای بسیار زیبا، که پوستههای تجاری که پولی هستند، بسیار عالی اند
🔹امکان استفاده از وبسایتهای شبکه ای با وردپرس شبکه
🖥 @FunProGraming
🔸نصب محلی
🔹هسته قابل حمل
🔸پشتیبانی از ساعت محلی
🔹 قابلیت gzip
🔸سطح دسترسی
🔹مشخصات کاربران
🔸پویا بودن و انعطافپذیری بالا
🔹دارای کتابخانه پلاگینهای وردپرس (رایگان)
🔸دارای کتابخانه قالبهای وردپرس (رایگان)
🔹 وردپرس شبکه (جهت راه اندازی سیستم وبلاگدهی با وردپرس)
🔸فهرستهای آبشاری و کرکرهای
🔹شخصیسازی قالبها، ابزارکها از پنل مدیریت
🔸ارسال و مدیریت دیدگاه
🔹راهاندازی تالار گفتگو
🔸راهاندازی فروشگاه اینترنتی
🔹فروشگاه فایل
🔸امکان استفاده از قالبهای بسیار زیبا، که پوستههای تجاری که پولی هستند، بسیار عالی اند
🔹امکان استفاده از وبسایتهای شبکه ای با وردپرس شبکه
🖥 @FunProGraming
🔰 کمی بیشتر در مورد #وردپرس
🔆 وردپرس با زبان برنامهنویسی پی اچ پی نوشته شده و توسط مایاسکیوال پشتیبانی میشود.
🔅 همچنین نسخهای برای پستگرسکیوال نیز موجود میباشد این سیستم کاملاً رایگان و متن باز است.
🔆 وردپرس در ادامه راه پروژهٔ موفق b۲ است که در سال ۲۰۰۳ شکل گرفت.
🔅 نام وردپرس را کریستیان اِسلِک، دوست مت مولنوگ (توسعهدهندهٔ اصلی وردپرس) پیش نهاد و از آن روز وردپرس با سرعت و پیشرفتی قابل ملاحظه تبدیل به معروفترین و پرکاربردترین ابزار ساخت وبلاگ و سایت بر روی هاست شدهاست.
♨️ در حال حاضر بیش از ۷۶ میلیون وب سایت در جهان با این CMS راه اندازی شدهاست.
🖥 @FunProGraming
🔆 وردپرس با زبان برنامهنویسی پی اچ پی نوشته شده و توسط مایاسکیوال پشتیبانی میشود.
🔅 همچنین نسخهای برای پستگرسکیوال نیز موجود میباشد این سیستم کاملاً رایگان و متن باز است.
🔆 وردپرس در ادامه راه پروژهٔ موفق b۲ است که در سال ۲۰۰۳ شکل گرفت.
🔅 نام وردپرس را کریستیان اِسلِک، دوست مت مولنوگ (توسعهدهندهٔ اصلی وردپرس) پیش نهاد و از آن روز وردپرس با سرعت و پیشرفتی قابل ملاحظه تبدیل به معروفترین و پرکاربردترین ابزار ساخت وبلاگ و سایت بر روی هاست شدهاست.
♨️ در حال حاضر بیش از ۷۶ میلیون وب سایت در جهان با این CMS راه اندازی شدهاست.
🖥 @FunProGraming
🔻 #نکته_آموزشی #سی_شارپ
🔶️ بدست آوردن مقدار یک Enum از رشته متنی متناظر با آن
public static T StringToEnum<T>(string name)
{
return (T)Enum.Parse(typeof(T), name);
}
📚 مثال - با فرض داشتن :
public enum DaysOfWeek
{
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday
}
📚 میتوانیم بنویسیم :
DaysOfWeek d = StringToEnum<DaysOfWeek>("Monday");
//d is now DaysOfWeek.Monday if(Enum.IsDefined(typeof(DaysOfWeek), "Katillsday"))
StringToEnum<DaysOfWeek>("Katillsday");
🖥 @FunProGraming
🔶️ بدست آوردن مقدار یک Enum از رشته متنی متناظر با آن
public static T StringToEnum<T>(string name)
{
return (T)Enum.Parse(typeof(T), name);
}
📚 مثال - با فرض داشتن :
public enum DaysOfWeek
{
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday
}
📚 میتوانیم بنویسیم :
DaysOfWeek d = StringToEnum<DaysOfWeek>("Monday");
//d is now DaysOfWeek.Monday if(Enum.IsDefined(typeof(DaysOfWeek), "Katillsday"))
StringToEnum<DaysOfWeek>("Katillsday");
🖥 @FunProGraming
🔻 #نکته_آموزشی #سی_شارپ
🔶️ معرفی یک الگوی ساده از ژنریک سینگلتون
class GenericSingleton<T> where T : class, new()
{
private static T instance;
public static T GetInstance()
{
lock (typeof(T))
{
if (instance == null)
{
instance = new T();
}
return instance;
}
}
}
📚 مثال از نحوه ی استفاده :
AutoFactory autoF = GenericSingleton<AutoFactory>.GetInstance();
🖥 @FunProGraming
🔶️ معرفی یک الگوی ساده از ژنریک سینگلتون
class GenericSingleton<T> where T : class, new()
{
private static T instance;
public static T GetInstance()
{
lock (typeof(T))
{
if (instance == null)
{
instance = new T();
}
return instance;
}
}
}
📚 مثال از نحوه ی استفاده :
AutoFactory autoF = GenericSingleton<AutoFactory>.GetInstance();
🖥 @FunProGraming