Unity Json解析實例

// 讀取 JsonMapper.ToObject(mainHoist.text));

 private void MainHoistAnalysis(JsonData jsonData)
        {
     
            string[] infos = new string[2];
            List<string[]> strList = new List<string[]>();
            GameObject.Find("IndoorScenes/EquipmentRoom/EquipmentC-1").GetComponent<AdditionalInformation>().infos.Clear();
           // for (int i = 0; i < jsonData.Count; i++)
            //{
                for (int i = 0; i < jsonData["data"].Count; i++)
                {
                    string monitorParName = jsonData["data"][i]["monitorParName"].ToString();
                    string monitorValue = jsonData["data"][i]["monitorValue"].ToString();

                    infos[0] = monitorParName;
                    infos[1] = monitorValue;
                    strList.Add(infos);
                    GameObject.Find("IndoorScenes/EquipmentRoom/EquipmentC-1").GetComponent<AdditionalInformation>().infos.Add(strList[i][0].ToString());
                    GameObject.Find("IndoorScenes/EquipmentRoom/EquipmentC-1").GetComponent<AdditionalInformation>().infos.Add(strList[i][1].ToString());
                }
           // }

        }

unity  自帶解析適合用於WEBgl

 

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using static MainHoistJsonDataL;

public class MainHoistJsonData : MonoBehaviour
{
    //private List<MainHoistJson> mainHoistJsonList = new List<MainHoistJson>();
    void Start()
    {
        //AssetBundle ab = AssetBundle.LoadFromFile(Application.dataPath+ "/Resources/guidesteplist.ab");
        TextAsset ta = Resources.Load<TextAsset>("json/jsondata-mainHoist");

        if (ta != null)
        {
            GameObject.Find("IndoorScenes/EquipmentRoom/EquipmentC-1").GetComponent<AdditionalInformation>().infos.Clear();
            //TextAsset ta = ab.LoadAsset<TextAsset>("guidesteplist");
            string str = ta.text;
            string[] infos = new string[2];
            if (!string.IsNullOrEmpty(str))
            {
                MainHoistJson jsonData = JsonUtility.FromJson<MainHoistJson>(str);

                for (int i = 0; i < jsonData.data.Count; i++)
                {
                    string monitorParName = jsonData.data[i].monitorParName.ToString();
                    string monitorValue = jsonData.data[i].monitorValue.ToString();
                    GameObject.Find("IndoorScenes/EquipmentRoom/EquipmentC-1").GetComponent<AdditionalInformation>().infos.Add(monitorParName);
                    GameObject.Find("IndoorScenes/EquipmentRoom/EquipmentC-1").GetComponent<AdditionalInformation>().infos.Add(monitorValue);
                    // Debug.LogError(jsonData.data[i].equipmentID.ToString());
                }
            }
        }
        else
        {
            Debug.LogError("加載不到資源");
        }

    }
}

public class MainHoistJsonDataL
{

    [Serializable]
    public class MainHoistJson
    {
        public bool success;
        public string msg;
        public List<Data> data;
    }

    [Serializable]
    public class Data
    {
        public string placeID;
        public string equipmentID;
        public string monitorParID;
        public string monitorParName;
        public string monitorParType;
        public int monitorParRelation;
        public string unit;
        public int dataType;
        public string hMaxWarning;
        public string maxWarning;
        public string maxValue;
        public string lMinWaring;
        public string minWaring;
        public string minValue;
        public string monitorTime;
        public string monitorValue;
        public int status;
    }
}

解析網絡地址的JSON

private IEnumerator PPheadcount()
        {
            List<PersonnelPositioning> entities = new List<PersonnelPositioning>();
            foreach (var item in EntityManager.Instance.GetEntities<PersonnelPositioning>())
                entities.Add(item);
            foreach (var item in entities)
            {
                if (item.GameObject == null) continue;               
                string ppURL = "http://172.25.16.10:8095/api/PersonLocation/PersonPosition/GetMapPersonsInfo?siteDeptID=1&stationID=" + item.stationID;

                WWW getData = new WWW(ppURL);
                yield return getData;
                if (getData.error != null)
                {
                    Debug.Log(getData.error);
                }
                else
                {
                    item.GameObject.GetComponent<AdditionalInformation>().infos.Clear();
                    item.GameObject.GetComponent<AdditionalInformation>().infos.Add("name");
                    item.GameObject.GetComponent<AdditionalInformation>().infos.Add(item.Name);
                    item.GameObject.GetComponent<AdditionalInformation>().infos.Add("desc");
                    item.GameObject.GetComponent<AdditionalInformation>().infos.Add(item.Desc);
                    item.GameObject.GetComponent<AdditionalInformation>().infos.Add("站名");
                    item.GameObject.GetComponent<AdditionalInformation>().infos.Add(item.stationName);
                    item.GameObject.GetComponent<AdditionalInformation>().infos.Add("人數");
                    item.GameObject.GetComponent<AdditionalInformation>().infos.Add(item.personCount.ToString());
                    JsonData jsonData = JsonMapper.ToObject(getData.text);
                   
                        var data = jsonData["data"];
                        for (int j = 0; j < data.Count; j++)
                        {
                            item.GameObject.GetComponent<AdditionalInformation>().infos.Add(data[j]["department"].ToString());
                            item.GameObject.GetComponent<AdditionalInformation>().infos.Add(data[j]["personName"].ToString());
                            item.GameObject.GetComponent<AdditionalInformation>().infos.Add("時間");
                            item.GameObject.GetComponent<AdditionalInformation>().infos.Add(data[j]["timeInWell"].ToString());

                        }                   
                    Debug.Log(item.Infos().Count);
                }
            }
            StopCoroutine("PPheadcount");
        }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章