Varias formas de analizar JSON en Unity
1. Utilice JsonUtility (viene con Unity) para analizar datos
Pisa la trampa
*用于接收的JSON实体类需要声明[Serializable] 序列化。
*使用Unity自带方法时,实体类如果是属性成员(public string mname{
get;set;})的话,
*在序列化的时候会缺失这些成员,导致解析不出来。将属性改为字段即(public string mname;)。
var uri = new System.Uri(Path.Combine(Application.streamingAssetsPath, "demoText.json"));
UnityWebRequest request = UnityWebRequest.Get(uri);
yield return request.SendWebRequest();
if (request.isNetworkError)
{
Debug.Log(request.error);
}
else
{
string jsonStr = request.downloadHandler.text;
RootDate Data= JsonUtility.FromJson<RootDate >(jsonStr);
}
2. Utilice Newtonsoft.Json dll para analizar el enlace json: enlace
var uri = new System.Uri(Path.Combine(Application.streamingAssetsPath, "demoText.json"));
UnityWebRequest request = UnityWebRequest.Get(uri);
yield return request.SendWebRequest();
if (request.isNetworkError)
{
Debug.Log(request.error);
}
else
{
string jsonStr = request.downloadHandler.text;
RootDate Data = JsonConvert.DeserializeObject<RootDate >(jsonStr);
}
3. Utilice LitJson para analizar datos
var uri = new System.Uri(Path.Combine(Application.streamingAssetsPath, "demoText.json"));
UnityWebRequest request = UnityWebRequest.Get(uri);
yield return request.SendWebRequest();
if (request.isNetworkError)
{
Debug.Log(request.error);
}
else
{
string jsonStr = request.downloadHandler.text;
RootDate Data= JsonMapper.ToObject<RootDate>(jsonStr);
}