ユニティ---シンプルLitJsonを使用する(JSONテキストを解析)

1、LitJsonダウンロード

Baiduのクラウド
リンク:https://pan.baidu.com/s/1BmmqLJ5asX2DSDxfR29KLQ
抽出コード:80gl

2、LitJsonに使用する方法

JSONテキスト項目

[
    {
        "id": 1,
        "name": "血瓶",
        "type": "Consumable",
        "sprite": "Sprites/Items/hp"
    },
    {
        "id": 2,
        "name": "长剑",
        "type": "Weapon",
        "sprite": "Sprites/Items/Saber"
    }
]

クラスに対応するJSONアイテム

public class Item
{
    /// <summary>
    /// 物品ID
    /// </summary>
    public int ID { get; set; }

    /// <summary>
    /// 物品名字
    /// </summary>
    public string Name { get; set; }

    /// <summary>
    /// 物品类型
    /// </summary>
    public ItemType Type { get; set; }

    /// <summary>
    /// 物品资源地址
    /// </summary>
    public string Sprite { get; set; }

    public Item(int id , string name,ItemType type,string sprite)
    {
        this.ID = id;
        this.Name = name;
        this.Type = type;
        this.Sprite = sprite;
    }

    /// <summary>
    /// 物品类型
    /// </summary>
    public enum ItemType
    {
        Consumable, //消耗品
        Weapon   //装备
    }
}

JSONクラスのアイテムを解析

public class JsonTest : MonoBehaviour
{
    private List<Item> database = new List<Item>();

    void Start()
    {
        ParseItemJson();
    }

    /// <summary>
    /// 解析物品信息
    /// </summary>
    private void ParseItemJson()
    {
        //获取Json中的文本。文本在unity中是textasset类型
        TextAsset itemText = Resources.Load<TextAsset>("Items");
        //把json文本转换为jsondata格式
        JsonData itemData = JsonMapper.ToObject(itemText.text);

        //对每一个物品,都新建个item类来存储
        for (int i = 0; i < itemData.Count; i++)
        {
            int id = (int)itemData[i]["id"];
            string name = (string)itemData[i]["name"];

            //枚举类型则要把字符串转换为枚举类型
            //用System.Enum.Parse方法
            Item.ItemType type = (Item.ItemType)System.Enum.Parse(typeof(Item.ItemType), itemData[i]["type"].ToString());
            string sprite = (string)itemData[i]["Sprite"];

            Item item = new Item(id, name, type,sprite);
            database.Add(item);
        }
        Debug.Log(itemList[1]);
    }
}

おすすめ

転載: www.cnblogs.com/Fflyqaq/p/11534892.html