zoukankan      html  css  js  c++  java
  • unity用json和服务器数据交互

    第一种类型:服务器json数据是个对象

    /// <summary>
        /// 获取用户信息初始化信息
        /// </summary>
        void InitUserMessage()
        {
            //服务器ip端口和传入参数
            string path = string.Format("{0}/GetUserInfo?UserId={1}", PublicJs.url_RequestPrefix, PublicJs.GUID);
            StartCoroutine(GetUserInfo(path));
        }
        /// <summary>
        /// 从服务器获取数据
        /// </summary>
        /// <param name="urlParh">服务器ip和端口</param>
        /// <returns></returns>
        IEnumerator GetUserInfo(string urlParh)
        {
            Debug.Log(urlParh);
    
            DownloadItem down = new DownloadItem(urlParh);
            yield return down.www;
    
            string wwwText = down.Text();
            Debug.Log(wwwText);
            if (string.IsNullOrEmpty(wwwText) == false)
            {
                var curUser = Json.Deserialize(wwwText) as Dictionary<string, object>;
                view.InitUserMessage(curUser["UserName"].ToString(), curUser["ClassName"].ToString(), curUser["Coins"].ToString());
            }
            else
            {
                Debug.Log("信息错误");
            }
        }

    第二种类型:服务器数据是对象数组

    IEnumerator RefreshUIData()
        {
            string urlPath = string.Format("{0}/GetTrends?", PublicJs.url_RequestPrefix);
            DownloadItem down = new DownloadItem(urlPath);
            yield return down.www;
            string wwwText = down.Text();
            Debug.Log(urlPath);
            Debug.Log(wwwText);
            List<object> listObject = Json.Deserialize(wwwText) as List<object>;
    
            foreach (var i in listObject)
            {
                Dictionary<string, object> row = i as Dictionary<string, object>;
                HYDTAts hydt = new HYDTAts();
                hydt.ID = row["ID"].ToString();
                hydt.Name = row["Title"].ToString();
                hydtList.Add(hydt);
            }
    
            //hydtList = CSVFileHelp.GetCsvHYDT();
            //Debug.Log(hydtList.Count);
    
            int tp = 0;
            ItemHYDT itemHYDT;
            GameObject obj;
            foreach (HYDTAts item in hydtList)
            {
                obj = NGUITools.AddChild(view.GridObj, view.ItemObj);
                obj.name = tp.ToString("D3");
                obj.AddComponent<UIDragScrollView>();
                obj.transform.localPosition = new Vector3(0, -50 * tp, 0);
                itemHYDT = obj.AddComponent<ItemHYDT>();
                itemHYDT.SetLabelText(item.Name);
                itemHYDT.BindValue(item);
                itemHYDT.OnClick += ItemHYDT_OnClick;
                tp++;
            }
    
            yield return 0;
        }
  • 相关阅读:
    windows上npm yarn.ps1,因为在此系统上禁止运行脚本
    windows批量启动服务
    Typora极简教程
    Markdown修改字体颜色
    markdown锚点
    R语言报错long vectors not supported yet qap_encode.c 36
    MAC OS 解决R语言locale问题
    Java调用R语言
    MQL4编程—值传递和引用传递
    二分法查找
  • 原文地址:https://www.cnblogs.com/unityzc/p/6801655.html
Copyright © 2011-2022 走看看