一、所需工具LitJson,因为VS或者sharpdevelop没有专门的库解析json
网盘地址:https://pan.baidu.com/s/1BiCqIk4nMKeGGigG3dXnPQ密码:9h59
添加litJson引用:
下载了该dll文件,添加到工程里,才能使用里面的函数
1、VS添加DLL引用的步骤:
首先将litJSon.dll放到工程的debug文件下,如图:
然后在工程右击->添加->引用
选择刚刚的DLL路径
2、sharpdevelop添加该DLL引用
先将DLL文件放置到Debug目录下;项目->添加引用->.net集合浏览器
选择刚刚的dll
二、源代码:
using System;
using System.IO;
using LitJson;
using System.Collections.Generic;
namespace C_高级课程练习
{
public class My_JSON
{
public static void Main(string[] args){
//方法1
/*List<Playe> PlayerList=new List<Playe>();//创建playe列表
JsonData jd=JsonMapper.ToObject(File.ReadAllText("test_json.txt"));//读取json文本内容
foreach(JsonData m in jd){//遍历
Playe p=new Playe();
p.ID=m["id"].ToString();
p.Name=m["name"].ToString();
p.Damage=Int16.Parse( m["damage"].ToString());
PlayerList.Add(p);
}*/
//方法2
//litJson可以直接将json文本内容写入到playe类表对象,前提json中的属性名称与playe对象的名称要完全一致
List<Playe> players= JsonMapper.ToObject<List<Playe>>(File.ReadAllText("test_json.txt"));
foreach(Playe p in players)
Console.WriteLine(p.ToString());
Console.ReadKey();
}
}
class Playe{
public Playe(){}
public string ID{set;get;}
public string Name{set;get;}
public int Damage{set;get;}
public override string ToString(){
return "ID:"+ID+" 技能:"+Name+" 伤害:"+Damage;
}
}
}
三、json文档信息(必须保证json是正确的):
[
{"ID":"G001","Name":"凤舞九天","Damage":120},
{"ID":"G002","Name":"醉意阑珊","Damage":130},
{"ID":"G003","Name":"火树银花","Damage":100},
{"ID":"G004","Name":"巫山云雨","Damage":100}
]
四、结果: