JSON读/写不起作用

时间:2016-11-25 18:16:42

标签: c# json unity3d text

我正在使用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个大括号{}。任何提示如何才能使这项工作?

0 个答案:

没有答案