使用 JsonUtility 解析为 Unity3D 中的 T[] 对象始终返回 null



所以,这是我的 Json 字符串,我想尝试在我的 Unity 代码中解析为数组

[
{"id":1,"museum":"Museum Kelvin"}
,{"id":2,"museum":"Museum Keke"},
{"id":3,"museum":"Museum Keke2"},
{"id":4,"museum":"Museum Keke2"}
]

我已经使用此代码获取了此字符串的值

IEnumerator GetPertanyaan()
{
string getPertanyaanUrl = "http://museumadv.azurewebsites.net/museum/list";
using (UnityWebRequest www = UnityWebRequest.Post(getPertanyaanUrl,"1"))
{
//www.chunkedTransfer = false;
yield return www.Send();
if (www.isError || www.responseCode==500 || www.responseCode==404)
{
Debug.Log(www.responseCode);
}
else
{
if (www.isDone)
{
string jsonResult =System.Text.Encoding.UTF8.GetString(www.downloadHandler.data);
Debug.Log(jsonResult); // Succes to read the JSON 

JMuseum[] entities = JsonHelper.getJsonArray<JMuseum>(jsonResult);

foreach (var pert in entities)
{
Debug.Log(pert.museum); //always null
}
}
}
}
}

Json 帮助程序类

public class JsonHelper
{
public static T[] getJsonArray<T>(string json)
{
string newJson = "{ "array": " + json + "}";
Wrapper<T> wrapper = JsonUtility.FromJson<Wrapper<T>>(newJson);
return wrapper.array;
}
[System.Serializable]
private class Wrapper<T>
{
public T[] array;
}
}

和我的JMuseum模型类

[System.Serializable]
public class JMuseum
{
public int id { get; set; }
public string museum { get; set; }
}

问题是,博物馆的值总是空的(null(,但数组的长度是正确的。

你们对此有什么解决方案吗?

谢谢

Unity 无法序列化属性。

试试这个

public class JMuseum
{
public int id;
public string museum;
}

最新更新