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 } ] }