欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

c#(操作json文件)

程序员文章站 2022-06-12 17:01:38
...

c#

  • :害,又是老懒鬼的笔记,多的操作一个都不计,就简单记下怎么用c#解析json文件,怎么将一个类对象转换成json行了(依旧是基本搬了siki老师的例子)。

操作json文件

  • 先把siki老师写的json例子直接抄过来(老懒鬼了,例子都照抄
[
{"id":2,"name":"天下无双","damage":123},
{"id":3,"name":"天下第一","damage":9999},
{"id":4,"name":"天下无贼","damage":15}
]

单步具体操作

  • 调用JsonMapper.ToObject(string s);方法得到该json文件的JsonData对象,参数是文件路径,这个对象到底要怎么用,还是取决于json文件怎么写的
JsonData jsonData = JsonMapper.ToObject(File.ReadAllText("json技能信息.txt"));
//这边这个文件编写的其实是一个技能数组的形式,所以得到的JsonData对象其实是个技能数组
//可以直接foreach进行遍历,来取得其内部每个技能的数据
foreach(JsonData temp in jsonData)
{
	JsonData idValue = temp["id"];   //通过字符串所引起取得键值对的值
	int id = Int32.Parse(idValue.ToString());
	//这边通过ToString方法取得JsonData的字符串数据,然后对其转换得到int数据
}

上面演示了如何单个解析Json文件的信息,当然你要是愿意一个信息一个信息的填进一个对象我也没意见,但是像我这种懒鬼,绝对绝对是要用下面这个方法的,太香了

json转对象

  • 直接一手泛型,让它自己对照你指定的类的属性名去找对应的值,然后自己创建对象。依旧对照上面那个例子来写
class Skill
{
	//先定义下技能的类
	//一定要把属性设置为public
	public int id;
	public int damage;
	public string name;
}
Skill[] skills = JsonMapper.ToObject<Skill[]>(File.ReadAllText("json技能信息.txt"));
//这边泛型里给的是Skill类型数组,所以我们直接用Skill的数组来接收结果
//需要注意这种方法json文件里写的键一定要和指定类型的属性命名对应上,不然会出问题
//也可以用如下方法做成list对象
List<Skill> skillList = JsonMapper.ToObject<List<Skill>>(File.ReadAllText("json技能信息.txt"));

对象转json

  • 这边使用JsonMapper.ToJson(Object o);方法,把对象作为参数传进去,返回一个字符串,就是编好得json字符串。