c# - 试图轻松保存游戏数据,需要帮助将对象统一添加到 json 文件

标签 c# json unity3d save

我目前有一个 json 文件,看起来有点像这个叫做“Monsters.json”的文件

{
"frosline":{
"id":1,
"name":"frosline",
"baseStats":[4, 3, ...],
...}
}

我还有一个包含所有相同变量的 MonsterStats 类,我无法通过代码向这个 json 文件添加更多怪物(例如,一个文件可能包含已被捕获的怪物列表 ala pokemon)

我试过做类似的事情:

MonsterStats stats = new MonsterStats(<stats for the monster here>)
JsonData monsterJson = JsonMapper.ToJson(stats);
String oldsave = File.ReadAllText(Application.dataPath + "/Monster.json");

JsonData monsterData = JsonMapper.ToObject(oldsave);
monsterData["newMon"] = monsterJson;

但不是在“newMon”中添加一个新对象,而是作为一个奇怪的字符串添加:

newMon":"{\"id\":0,\"name\":\"player\",\"baseStats\":[10,0,0,0,0,0],\"xpyield\":0,\"evyield\":[0,0,0,0,0,0],\"moves\":[\"Ember\",\"\",\"\",\"\"],\"health\":11,\"stats\":[11,5,5,5,5,5],\"evs\":[0,0,0,0,0,0],\"level\":1,\"xp\":0}"}

我曾尝试寻找类似的问题或解决方案,但我对 JSon 很陌生,所以很难知道要搜索什么。 如果有帮助,这就是使用 litjson。

同样让我恼火的是,如果我简单地打印出变量 monsterJson,它就会干净利落地出现:

{"id":0,"name":"player","baseStats":[10,0,0,0,0,0],"xpyield":0,"evyield":[0,0,0,0,0,0],"moves":["Ember","","",""],"health":11,"stats":[11,5,5,5,5,5],"evs":[0,0,0,0,0,0],"level":1,"xp":0}

最佳答案

所以啊,我有点让它工作了,这绝对不是最好的答案,所以仍然希望知道他们正在做的人的回复。

更改了代码的最后一行:

    monsterData["newMon"] = JsonMapper.ToObject(monsterJson.ToString());

关于c# - 试图轻松保存游戏数据,需要帮助将对象统一添加到 json 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36324147/

相关文章:

c# - 没有代理的低下载速度

javascript - 从 websockets 接收到特定数据后仅更改特定值

java - 访问多级 JSON 结构中的值

c# - 2 向量差旋转

c# - 使用 Unity 在 Android 上恢复应用程序

c# - 将枚举转换为具有空格的字符串

c# - 使用 SemaphoreSlim 限制对共享变量的访问是否可以保证所有写入都可见?

c# - 如何找出我的依赖属性已更改?

json - 如何使用数组从字典创建 JSON

c# - unity UI 中矩形变换的位置