خواندن json توسط یونیتی/خواندن صفحه ی وب جیسون با یونیتی_ارتباط جیسون با یونیتی_جیسون چیست
پنجشنبه, ۷ ارديبهشت ۱۳۹۶، ۰۳:۲۱ ب.ظ
gameover.blog.ir
JSON مخفف JavaScript Object Notation (نشانهگذاری شئ جاوااسکریپت)، یک استاندارد باز متنیِ سبک برای انتقال دادهها است به گونهای که برای انسان نیز خوانا باشد.
اینم بخونید درباره جیسون به زبان فارسی هست خیلی قشنگ توضیح داده(با فایرفاکس باز کنید):
http://s9.picofile.com/file/8293289350/json_tozih.rar.html
به طور خلاصه یک استاندارد هست که خروجی وب رو به صورت فرمت خاصی در میاره که اگه متن رو دانلود کنیم به راحتی می تونیم اجزاشو جدا کنیم و نمایش بدیم مثل اسامی دانش اموزان و نمره ها و غیره. آیا جیسون دیتابیس هست؟ خیر. دیتابیس رو با php از روی سرور می خونیم و محتوای جدول هاشو پس از واکشی (خوندن) می تونیم به صورت آرایه یا جیسون یا غیره نمایش بدیم.
پس به طور خلاصه جیسون یک ساختار نمایشی برای داده های وب هست که به راحتی میشه محتواشو تجزیه کرد.
مثال :
نمونه ای از متن با فرت جیسون:
{
"title" : "Decode JSON",
"ID" : 20,
"buttons" :
[
{
"title" : "Red ",
"image" : "Image Url"
},
{
"title" : "Green ",
"image" : "Image Url"
},
{
"title" : "Blue ",
"image" : "Image Url"
},
{
"title" : "Yellow ",
"image" : "Image Url"
}
]
}
برای خواندن و تجزیه یا دیکود کردن(رمزگشایی) متن فوق در یونیتی داریم:
using UnityEngine; using LitJson; using System; using System.Collections; public class parseJSON { public string title; public string id; public ArrayList but_title; public ArrayList but_image; } public class JSON_D : MonoBehaviour { // Sample JSON for the following script has attached. IEnumerator Start() { string url = " URL of the JSON to be Decode"; WWW www = new WWW(url); yield return www; if (www.error == null) { Processjson(www.data); } else { Debug.Log("ERROR: " + www.error); } } private void Processjson(string jsonString) { JsonData jsonvale = JsonMapper.ToObject(jsonString); parseJSON parsejson; parsejson = new parseJSON(); parsejson.title = jsonvale["title"].ToString(); parsejson.id = jsonvale["ID"].ToString(); parsejson.but_title = new ArrayList (); parsejson.but_image = new ArrayList (); for(int i = 0; i<jsonvale["buttons"].Count; i++) { parsejson.but_title.Add(jsonvale["buttons"][i]["title"].ToString()); parsejson.but_image.Add(jsonvale["buttons"][i]["image"].ToString()); } } }
۹۶/۰۲/۰۷
Instance of JsonData is not a dictionary
LitJson.JsonData.EnsureDictionary ()
LitJson.JsonData.get_Item (System.String prop_name)
json.Processjson (System.String jsonString)
ممنون میشم از راهنماییتون