Unity LitJson解析Json

(1)Json文件如下,位于Resources目录或者StreamingAssets目录,目录不同,读取文件的方式不一样

{
    "cardList": [{
            "id": 1,
            "level": 1,
            "name": "Lily",
            "type": 0,
            "des": "第一个女孩",
            "isEquip": false,
            "color": 0,
            "file": "card/card_B_0A_lv1.png"
        },
        {
            "id": 2,
            "level": 1,
            "name": "Lucy",
            "type": 1,
            "des": "第二个女孩",
            "isEquip": false,
            "color": 0,
            "file": "card/card_B_0A_lv2.png"
        }]
    }

(2)简易解析过程如下

public class Card { 
    public int ID { get; set; }
    public int Level { get; set; }
    public string FileName { get; set; }

}
public class CardMrg : MonoBehaviour
{
    public List cardList = new List();
    // Start is called before the first frame update
    void Start()
    {
        GetAllCard();
    }

    void GetAllCard()
    {

       //自己封装函数,读取文件内容
        string content = FileUtil.GetTextForStreamingAssets("AllCard.txt");
        Debug.Log(content);

        JsonData data = JsonMapper.ToObject(content);
        Debug.Log("--------");
        JsonData list = data["cardList"];
        Debug.Log("--------");
        for (int i = 0; i < list.Count; i++)
        {
            int id = (int)list[i]["id"];
            int level = (int)list[i]["level"];
            string file = (string)list[i]["file"];
            Card card = new Card();
            card.ID = id;
            card.Level = level;
            card.FileName = file;
            cardList.Add(card);
        }
        print(cardList.Count);
        //使用LitJson解析时,解析类时
        //若需要小数,要使用double类型,而不能使用float,可后期在代码里再显式转换为float类型。
    }
}
 

你可能感兴趣的:(unity3d)