【Unity学习笔记】C#控制台程序解析Json文件
作者:互联网
声明:此篇文章是个人学习笔记,并非教程,所以内容可能不够严谨。可作参考,但不保证绝对正确。如果你发现我的文章有什么错误,非常欢迎指正,谢谢哦
一、LitJson库介绍
LitJson库是用于将Json转换为对象或者将对象转换为Json的一个库。
二、类和方法介绍
2.1 JsonMapper类
2.1.1JsonMapper类就是用于Json和对象互相转换的一个类,注意它的两个方法即可:
①ToJson(object obj) 将对象转换为Json。返回值为string,即转换好的json格式文本
②ToObject(string json) 将Json转换为对象。
2.1.2ToObject(string json)方法有两种用法:
①如果想要将Json中描述的数据存储到具体的类或者数组中,就可以用泛型方法,传入类类型或数组类型ToObject(string) 来转换为具体的对象或数组。
要注意的是,Json中的键值对中的键名要和要转换的类中的属性名一模一样才行。
Person[] persons = JsonMapper.ToObject<Person[]>(File.ReadAllText("技能信息.json"));//除了数组也可以用List
foreach(Person person in persons)
{
Console.WriteLine("id:" + person.Id);
Console.WriteLine("name:" + person.Name);
Console.WriteLine("damage:" + person.Damage);
}
②如果没有具体的类或者不想要传入具体的类,就选择非泛型方法。获取一个JsonData类型的返回值。JsonData是一个通用类型,它可以指向Json中支持的所有类型数据。
我们可以通过JsonData对象使用索引的器的方式访问指定元素,返回值依然是JsonData类型对象。如果JsonData对应数组,那么就用数字索引获取值。如果JsonData对应对象,就可以用数字或键名(属性名)来获取对应值。如下列子:
/*Json文件内容
[
{"Id":1,"Name":"大锤","Damage":123},
{"Id":2,"Name":"毛妹","Damage":325},
{"Id":3,"Name":"源氏","Damage":321}
]
*/
//获取到最外层数组
JsonData jsonData = JsonMapper.ToObject(File.ReadAllText("技能信息.json"));
//jsonData[0]为第一个对象,jsonData[0][1]为第一个对象的第2个属性
//只能强制转换为基本数据类型,因此要获取到值才行。不能转换为自定义对象
string str = (string)jsonData[0][1];
Console.WriteLine(str);
//data为数组中的对象
foreach(JsonData data in jsonData)
{
Console.WriteLine("Id:" + data["Id"]);
Console.WriteLine("Name:" + data["Name"]);
Console.WriteLine("Damage:" + data["Damage"]);
}
运行结果:
三、如何引入库文件
引入解析Json文件的库:在项目的引用项上右键,打开NuGet包管理器,搜索litjson并选择一个下载
标签:Console,C#,Unity,JsonData,Damage,对象,Json,WriteLine 来源: https://blog.csdn.net/a1208498468/article/details/117522289