我正在使用Unity的JSON帮助程序库JSONUtility
但它似乎根本不起作用。我做了一个简单的测试对象,它包含一个int,string和enum值,我试图序列化和反序列化,但没有运气。这是我的代码
private void Start()
{
string[] jsonFile = File.ReadAllLines(Application.dataPath + "/Resources/ItemsDatabase.json");
Item testDeserialization = Item.CreateFromJSON(jsonFile[1]);
Item testSerialization = new Item(1, "Test", Item.ItemTypes.Weapon);
string a = JsonUtility.ToJson(testSerialization);
}
这是json文件
{"Items":[
{
"ID": "1",
"Name": "Basic Sword",
"ItemType": "Weapon"
},
{
"ID": "2",
"Name": "Advanced Sword",
"ItemType": "Weapon"
}
]}
这是Item类
[System.Serializable]
public class Item
{
public enum ItemTypes
{
Weapon,
Armor
}
public int ID { get; set; }
public string Name { get; set; }
public ItemTypes ItemType { get; set; }
public Item(int id, string name, ItemTypes itemType)
{
ID = id;
Name = name;
ItemType = itemType;
}
public static Item CreateFromJSON(string jsonString)
{
return JsonUtility.FromJson<Item>(jsonString);
}
}
testDeserialization
中的结果只是所有变量的默认值,而testSerialization
中的结果只是2个大括号{}
。任何提示如何才能使这项工作?