【发布时间】:2020-03-12 10:14:49
【问题描述】:
想要将对象转换为 json 字符串并返回。
我的对象:
[Serializable]
public class Save
{
public Levels PlayerLvl { get; set; }
public int Kills { get; set; }
}
代码中的函数:
testfunction(Save savedata) {
//(int)savedata.PlayerLvl equals 1
//savedata.Kills equals 5
string json = JsonUtility.ToJson(savedata);
debug.log(json) // json equals "{}"
}
当我得到一个 json 字符串并想要将其转换回来时,也会发生同样的情况:
testFunction(string jsonstring) {
//jsonstring is a valid json string that equals Save object
Save savedata = JsonUtility.FromJson<Save>(jsonstring);
// savedate equals a new Save object without content
}
这里有什么问题?
编辑:
我得到的Json:
{
"Kills": 5,
"PlayerLvl": 1
}
级别枚举:
public enum Levels {
Level1 = 1,
Level2 = 2
}
【问题讨论】:
-
你能展示
json的例子和Levels的类吗 -
afaik JsonUtility 不支持属性,要么使用字段,要么使用其他库,例如 Json.NET
-
尝试为
public enum Levels添加[Serializable] -
删除所有get;set;因为 JsonUtility 不支持属性。