1.JSON
JSON是存储和交换文本信息的语法。类似XML
相比XML更加轻量级,它基于ECMAScript的一个子集。
JSON采用完全独立于语言的文本格式。
具有自我描述性,更容易理解
语法规则
数据在键值对中
数据由逗号分隔
花括号保存对象
方括号保存数组
JSON 名称/值对
JSON的值可以是:
数字(int or float)
字符串(用双引号括起来)
逻辑值(true or false)
数组(在方括号中)
对象(在花括号中)
null
2.书写json文本、引入json库文件
一个简单的json文本
[
{"id":2,"name":"豪火球","damage":66},
{"id":3,"name":"里连环","damage":9},
{"id":4,"name":"手里剑","damage":6},
]
引入json库文件可以通过项目中的引用管理NuGet程序包,联网下载安装
3.使用JsonMapper解析json数据
通过JsonMapper解析Json的文本文件
将解析出来的data用JsonData的对象来进行保存,通过字符串索引器可以取得保存的键值对的值
//使用jsonMapper解析json 返回一个jsondata代表一个数组或者对象
JsonData jsonData = JsonMapper.ToObject(File.ReadAllText("技能信息.txt"));
foreach (JsonData temp in jsonData)
{
JsonData idValue = temp["id"];//通过字符串索引器可以取得键值对的值
JsonData nameValue = temp["name"];
JsonData damageValue = temp["damage"];
int id = Int32.Parse(idValue.ToString());
int damage = Int32.Parse(damageValue.ToString());
Console.WriteLine(id + ":" + nameValue.ToString() + ":" + damage);
}
4.使用JsonMapper跟泛型解析json
直接指定泛型为数组,让解析出来的数据返回数组
//使用泛型解析
Skill[] skillArray = JsonMapper.ToObject<Skill[]>(File.ReadAllText("技能信息.txt"));
foreach(var temp in skillArray)
{
Console.WriteLine(temp);
}
5.将data数据转换成json数据
Skill mySkill = new Skill();
mySkill.id = 6;
mySkill.damage = 99;
mySkill.name = "whoisyourdady";
string json = JsonMapper.ToJson(mySkill);
Console.WriteLine(json);
6.json的校验和json在线编译器
在线Json校验的网站
json在线编译器
http://www.bejson.com/jsoneditoronline/
7.Excel操作
使用OLEDB操作Excel
先创建一个Connection对象,传递一个连接字符串
打开链接
通过Adapter传递查询命令,查询相关信息
将adapter数据填充到dataSet中
释放连接资源
取得数据存放到DataTableCollection对象中
将Collection中的数据存放到DataTable对象中
将table中的数据存放到DataRowCollection中
遍历rowCollection得到DataRow的对象
用索引器取得row中的数据
static void Main(string[] args)
{
string fileName = "装备信息.xls";
string connectionString =
"Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=" +fileName + ";" + ";" +
"Extended Properties=\"Excel 8.0;HDR=YES;IMEX=1\"";
//用来跟数据源建立连接
OleDbConnection connection = new OleDbConnection(connectionString);
//打开连接
connection.Open();
string sql = "select*from [Sheet1$]";//这个是一个查询命令
//使用Adapter适配器进行查询,查询结果是一个表格
OleDbDataAdapter adapter = new OleDbDataAdapter(sql,connection);
//使用DataSet来存放数据
DataSet dataSet = new DataSet();//用来存放DataTable
adapter.Fill(dataSet);//表示把查询的结果(datatable)放(填充)到dataset中
connection.Close();
//取得数据
DataTableCollection tableCollection = dataSet.Tables;//获取当前集合中所有的表格
DataTable table = tableCollection[0];
//取得表格中的数据
DataRowCollection rowCollection = table.Rows;//返回一个行的集合
foreach(DataRow row in rowCollection)
{
//取得row中前8列的数据
for(int i = 0; i < 8; i++)
{
Console.Write(row[i]+" ");
}
Console.WriteLine();
}
Console.ReadKey();
}