Json简单解析(使用的是LitJson)

1.json文件

[
    {
        "id": 2,
        "Name": "天下无双",
        "Damage": 99
    },
    {
        "id": 3,
        "Name": "龙战于野",
        "Damage": 2299
    }

]

2.技能类

    class Skill
    {
        public int ID { get; set; }
        public string Name { get; set; }
        public int Damage { get; set; }

        public override string ToString()
        {
            return string.Format("ID:{0},Name:{1},Damage:{2}", ID, Name, Damage);
        }
    }


3.解析过程

class Program
    {
        static void Main(string[] args)
        {
            //List skillList = new List();
            //使用litjson来解析json文本
            //引入litjson的两种方式
            //1.去官网下载litjson,然后添加引用,找到dll所在目录
            //2.右键引用,打开管理netget程序包,在联机里面搜索litjson,在搜索结果中选择一个 点击安装

            //使用JsonMapper解析json文本,jsonData代表json里的那个数组或对象。

            //解析笨办法
            //JsonData jsonData = JsonMapper.ToObject(File.ReadAllText("json技能解析.txt"));
            // foreach(JsonData temp in jsonData)    //temp在这里代表一个对象
            // {
            //     Skill skill = new Skill();
            //     JsonData idValue = temp["id"];
            //     JsonData nameValue = temp["Name"];
            //     JsonData damageValue = temp["Damage"];
            //     skill.ID = Int32.Parse(idValue.ToString());
            //     skill.Name = nameValue.ToString();
            //     skill.Damage = Int32.Parse(damageValue.ToString());
            //     skillList.Add(skill);
            // }
            // foreach(var skill in skillList)
            // {
            //     Console.WriteLine(skill);
            // }

            //使用泛型解析json
            //Json里面对象的键必须跟类里面的字段或者属性保持一致
            //List skillList = JsonMapper.ToObject>(File.ReadAllText("json技能解析.txt"));
            //foreach(var temp in skillList)
            //{
            //    Console.WriteLine(temp);
            //}

            //解析单独一个对象
            //Player p = JsonMapper.ToObject(File.ReadAllText("主角信息.txt"));
            //Console.WriteLine(p);
            //foreach(var temp in p.SkillList)
            //{
            //    Console.WriteLine(temp);
            //}

            Player p = new Player();
            p.Name = "花千骨";
            p.Level = 99;
            string json = JsonMapper.ToJson(p);
            Console.Write(p);


            //bejson很好用的在线编辑器
            Console.ReadKey();

        }


4.人物类

    class Player
    {
        public string Name { get; set; }
        public int Level { get; set; }
        public List SkillList { get; set; }

        public override string ToString()
        {
            return string.Format("Name:{0},Level:{1},SkillList:{2}", Name, Level, SkillList);
        }
    }

5.人物json文件
{
"Name":"yanzi","Level":99,"SkillList":[
    {
        "id": 2,
        "Name": "天下无双",
        "Damage": 99
    },
    {
        "id": 3,
        "Name": "龙战于野",
        "Damage": 2299
    }

]	
}



你可能感兴趣的:(c#)