所以我想从我的电脑序列化Json数组。从计算机序列化JSON数组出错
我跟着这个问题的答案:Serialize and Deserialize Json and Json Array in Unity
唯一的区别是,我的JSON的来源是从我的桌面。
我有我的文件中的JsonHelper函数,fixJson函数和播放器类。
在我启动功能,我有以下代码:
jsonString = fixJson(System.IO.File.ReadAllText("/Users/sroubert/Desktop/playerDummyDataTest.json"));
dummyPlayer = JsonHelper.FromJson<Player> (jsonString);
print (jsonString);
print (dummyPlayer[0].playerLoc);
我在文件的顶部有以下定义dummyPlayer:
public Player[] dummyPlayer;
的print (jsonString)
命令工作正常。它输出以下:
但是,代码从打印抛出NullReference异常(dummyPlayer [0] .playerLoc)。
我测试用下面的函数jsonHelper:
string jsonString = "{\r\n \"Items\": [\r\n {\r\n \"playerId\": \"8484239823\",\r\n \"playerLoc\": \"Powai\",\r\n \"playerNick\": \"Random Nick\"\r\n },\r\n {\r\n \"playerId\": \"512343283\",\r\n \"playerLoc\": \"User2\",\r\n \"playerNick\": \"Rand Nick 2\"\r\n }\r\n ]\r\n}";
dummyPlayer = JsonHelper.FromJson<Player>(jsonString);
print (jsonString);
Debug.Log(dummyPlayer[0].playerLoc);
打印(jsonString)输出为恰好相同。但是,没有NullReferenceException。打印出Powai。
有谁知道可能会发生什么?
JsonHelper.FromJson将返回数组的实例,而不是Player的数组。我相信,你需要反序列化它 –
NullReferenceException甚至没有指向anyhting,你在这里显示... – Vogel612