所以我有一个回调函数给出的字符串,其中包含所有json数据
private string jsonResponse = @"{""players""[{""name"":""cc"",""rank"":29}, ...]}";
当我尝试使用JsonUtility.FromJson将它从json转换为对象时,它会抛出
Object reference not set to an instance of an object
我已经创建了对象类(root和普通类)但它仍然不起作用,这里是代码:
void actionTest(int i, string s)
{
Debug.Log(i + " " + s);
Rootobject rootObj = new Rootobject();
rootObj = JsonUtility.FromJson<Rootobject>(s);
Debug.Log(rootObj.players.Count);
}
[System.Serializable]
public class Rootobject
{
public List<Player> players { get; set; }
}
[System.Serializable]
public class Player
{
public string name { get; set; }
public int rank { get; set; }
}
按下按钮时会发生这一切!
答案 0 :(得分:1)
这是一个NullReferenceException意味着你的一个字段是NULL,你实际上可以准确地发布你正在获得异常的那一行吗?如果是这个
rootObj = JsonUtility.FromJson<Rootobject>(s);
那么它此时可能是NULL吗?也可能是RootObject有一个触发NullReferenceException的构造函数, 你不必构造rootObj,因为JsonUtility.FromJson将构造项目,如果你想填充你的项目,你可以使用JsonUtility.FromJsonOverwrite