zoukankan      html  css  js  c++  java
  • Unity Json---LitJson插件的使用

    1、LitJson下载

    百度云
    链接:https://pan.baidu.com/s/1BmmqLJ5asX2DSDxfR29KLQ
    提取码:80gl

    2、LitJson如何使用

    Json文本内容 Items

    [
        {
            "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类 Items

    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]);
        }
    }
    
  • 相关阅读:
    Java——多线程之方法详解
    Java——深入理解Java异常体系
    Java——Java代码的执行顺序
    Java——抽象类与接口的前世今生
    存储系列之 LUN 和 LVM
    存储系列之 RAID技术原理简介
    存储系列之 硬盘接口与SCSI总线协议
    存储系列之 介质(软盘、硬盘、固态)和磁盘寻址
    Redis设计原理简介
    MySQL InnoDB索引介绍以及在线添加索引实例分析
  • 原文地址:https://www.cnblogs.com/Fflyqaq/p/11534892.html
Copyright © 2011-2022 走看看