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

 

首先读取StreamingAssets文件夹的路径json文件 是这样读取滴

 //读取数据
        JsonData info = JsonMapper.ToObject(File.ReadAllText(Application.streamingAssetsPath + "/Jsons/jsondata-UI.json"));
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");
        }
  /// <summary>
        /// 生成Json数据 <see cref="Entity.ToJson"/>
        /// </summary>
        /// <returns></returns>
        public override JsonData ToJson()
        {
            // TODO:待实现
           Vector3d a_Position = SceneManager.Instance.Center + new Vector3d(position.x, position.y, position.z);
            Vector3d a_Direction = SceneManager.Instance.Center + new Vector3d(direction.x, direction.y, direction.z);
            return new JsonData()
            {
                ["name"] = Name,
                ["code"] = guid,
                ["leftHeight"] = liftHeight,
                ["rightHeight"] = rightHeight,
                ["bottomWidth"] = bottomWidth,
                ["position"] = new JsonData()
                {
                    ["X"] = a_Position.x,
                    ["Y"] = a_Position.y,
                    ["Z"] = a_Position.z
                },               
                ["direction"] = new JsonData()
                {
                    ["X"] = a_Direction.x,
                    ["Y"] = a_Direction.y,
                    ["Z"] = a_Direction.z
                },
                ["cubeWindowIs"]= cubeWindowIs

            };
           
        }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

山竹炒大蒜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值