// 读取 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
};
}