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

本文介绍了一种使用C#和LitJSON库进行JSON文件解析的方法。重点在于如何将JSON数据映射到C#对象,并提供了详细的代码示例。包括技能类的定义、JSON文件的读取与解析流程,以及如何将解析后的数据打印出来。
摘要由CSDN通过智能技术生成

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<Skill> skillList = new List<Skill>();
            //使用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<Skill> skillList = JsonMapper.ToObject<List<Skill>>(File.ReadAllText("json技能解析.txt"));
            //foreach(var temp in skillList)
            //{
            //    Console.WriteLine(temp);
            //}

            //解析单独一个对象
            //Player p = JsonMapper.ToObject<Player>(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<Skill> 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
    }

]	
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值