لینکهای مفید برای شرکت در مسابقه:
در زمان مسابقه میتوانید سوالهای خود را از قسمت "سوال بپرسید" مطرح کنید.
ظاهر کلی برنامه بدین صورت است:
پروژه اولیه را از این لینک دانلود کنید.
index.html
را در مرورگر خود باز کنید.نیما که به تازگی با جیسون (JSON) آشنا شده، از نمایش معمولی آنها خوشش نمیاد و تصمیم گرفته که با جاوااسکریپت برنامهای بنویسید تا جیسونهای زشت را خوشگل کند. از آنجا که نیما خیلی کار کردن با جیسونها را بلد نیست، به او در نوشتن این برنامه کمک کنید.
در این پروژه کاربر جیسون را در textarea سمت چپ صفحه وارد میکند و سپس روی دکمه «خوشگل سازی جیسون» کلیک میکند و جیسون خوشگل شده در باکس سمت راست صفحه نمایش داده میشود.
همانطور که احتمالاً میدانید هر جیسون از زوجهای name/value تشکیل شده است. در صورتی که جیسون ورودی کاربر معتبر نبود باید کلاس has-error
را به تگ با آیدی textarea
بدهید. همچنین در صورت معتبر بودن جیسون ورودی باید این کلاس را حذف کنید. در ادامه باید ساختار HTML جیسون را بسازید و در نهایت آن را داخل تگ div
با آیدی result
رندر کنید.
نیما قواعد ساخت جیسون زیبا را اینگونه بیان میکند:
1- مقادیر جیسونی که باید خوشگل شود فقط میتواند از نوع string
، number
، boolean
و object
باشد.
2- محتویات هر آبجکت باید داخل یک تگ ul
باشد.
3- هر زوج name/value که داخل یک آبجکت است باید داخل تگ li
باشد.
li
قرار بگیرد:span
با کلاس json-viewer-object-start
که شامل name و {
باشد.ul
که شامل زوجهای name/value داخل آبجکت است.span
با کلاس json-viewer-object-end
که شامل }
است.span
با کلاس key
قرار بگیرد. span
دیگر قرار میگیرد نیما که میخواهد جیسونهایش به میزان بیشتری خوشگل شود، تصمیم گرفته که valueهایی که از نوع مختلفی هستند را با یک رنگ خاص نشان دهد. برای اعمال رنگهای مختلف باید به تگ span
که value در آن قرار دارد، کلاس value-{type}
را بدهید. برای مثال اگر value از جنس string باشد، کلاس value-string
را باید بدهید.از آنجایی که نیما طبق تجربههایی که در گذشته کسب کرده، میداند که «فقط زیبایی و خوشگل بودن ملاک نیست» و به همین دلیل میخواهد نمایشدهندهای که ساخته است را کاربردیتر کند. او از شما خواسته است تا امکان باز و بسته شدن آبجکتها را بر اساس موارد زیر پیادهسازی کنید:
json-viewer-object-start
، کلاس json-viewer-object-close
تاگل (toggle) شود (یعنی اگر این کلاس را دارد، حذف شود و اگر ندارد، اضافه شود).""
قرار بگیرند و پس از آنها کاراکتر :
و یک فاصله باشد. برای مثال اگر name برابر age
باشد باید به صورت "age":
نمایش داده شود. اگر value مورد نظر از نوع آبجکت باشد، علاوه بر موارد بالا یک {
نمایش داده میشود (برای مثال "age": {
).json-examples
دو نمونه مختلف از JSON گذاشته شده است. میتوانید از آنها برای تست برنامه خود استفاده کنید.main.js
هستید.main.js
را بدون zip کردن ارسال کنید یا کل پروژه را zip کرده و ارسال کنید.