所以,这是我的 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;
}