标签:
一、json配置
要解析json文件,应安装litJson
二、json简介(摘自百度百科)
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于ECMAScript的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、C#、Java、JavaScript、Perl、Python等)。这些特性使JSON成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)。
1
|
"firstName":"John" |
1
|
firstName="John" |
[ {"id":2,"name":"天下无双","demage":123}, {"id":3,"name":"绝对零度","demage":200}, {"id":4,"name":"冰封万里","demage":325} ]
四、解析json文件
创建一个对应的Skill类
class Skill { public int Id { get; set; } public string Name { get; set; } public int Demage { get; set; } public override string ToString() { return "Id:" + Id + " Name:" + Name + " Demage:" + Demage; } }
解析文件
class Program { static void Main(string[] args) { List<Skill> skillList = new List<Skill>(); //右键引用,选择管理Nuget程序包,搜索litjson安装 JsonData jsonData = JsonMapper.ToObject(File.ReadAllText("json.txt")); foreach (JsonData temp in jsonData) { Skill skill = new Skill(); JsonData idValue = temp["id"]; JsonData nameValue = temp["name"]; JsonData demageValue = temp["demage"]; int id = int.Parse(idValue.ToString()); string name = nameValue.ToString(); int demage = int.Parse(demageValue.ToString()); skill.Id = id; skill.Name = name; skill.Demage = demage; skillList.Add(skill); } foreach (var s in skillList) { Console.WriteLine(s); } } }
五、使用泛型解析Json
注意:Skill类中的属性名应该和json文件中的键名相同
class Skill { public int id { get; set; } public string name { get; set; } public int demage { get; set; } public override string ToString() { return "Id:" + id + " Name:" + name + " Demage:" + demage; } }
//使用泛型解析 Skill[] skillList = JsonMapper.ToObject<Skill[]>(File.ReadAllText("json.txt")); foreach (var item in skillList) { Console.WriteLine(item); }
是不是用泛型简单很多呢?
标签:
原文地址:http://www.cnblogs.com/zhangbaochong/p/4926284.html