【发布时间】:2016-07-15 07:27:39
【问题描述】:
我需要保存多个玩家的数据。我通过制作一组 PlayersInfo 类并尝试将数组转换为 JSON 来做到这一点。这是我的代码
PlayerInfo[] allPlayersArray = new PlayerInfo[1];
allPlayersArray[0] = new PlayerInfo();
allPlayersArray[0].playerName = "name 0";
string allPlayersArrayJson = JsonUtility.ToJson(allPlayersArray);
print(allPlayersArrayJson);
PlayerPrefs.SetString("allPlayersArrayJson", allPlayersArrayJson);
string newJson = PlayerPrefs.GetString("allPlayersArrayJson");
print(newJson);
PlayerInfo[] newArray = new PlayerInfo[1];
newArray = JsonUtility.FromJson<PlayerInfo[]>(newJson);
print(newArray[0].playerName);
前两个打印语句返回“{}”,第三个给出空引用错误。 TIA
【问题讨论】:
-
Unity Json Serializer 不直接支持这个。你需要一个助手类来让它工作。我认为这是一个重复的问题。这是你的答案stackoverflow.com/a/36244111/3785314 从上面写着 2.MULTIPLE DATA(ARRAY JSON) 的地方开始阅读
-
谢谢@Programmer,你能帮我实际使用它吗?我刚刚复制了辅助类,现在我想知道如何使用它来转换我的数组?请注意,我需要进一步修改该数组。
-
我发布的答案的链接向您展示了执行此操作的步骤。向下滚动并尝试关注他们。如果有问题,请告诉我。然后我会发布一个解决方案。在我发布答案之前,您必须告诉我您尝试了什么。
-
这是我尝试过的。 'PlayerInfo[] firstArray = new PlayerInfo[1]; firstArray[0].playerName = "Name1";字符串 firstJSON = JsonHelper.ToJson(firstArray); PlayerPrefs.SetString("playerInfo", firstJSON); string firstString = PlayerPrefs.GetString("playerInfo"); PlayerInfo[] secondArray = new PlayerInfo[1]; secondArray = JsonHelper.FromJson
(firstString); secondArray[0].playerName = "Name2";字符串 secondString = JsonHelper.ToJson(secondArray); PlayerPrefs.SetString("playerInfo", secondString); string thirdString = PlayerPrefs.GetString("playerInfo"); -
但它在第二条语句中给出了空引用错误。