《Unity系列》Json文件格式的解析——初级教程

Json作为轻量级的数据交换格式,被广泛应用于网络数据传输中。相关的解析工具层出不穷,一般掌握一个工具的应用其他的相应工具就能立马学会。

这里以C#中的LitJson为例给大家示范一下解析工具的用法。当然在示范之前有必要说明一下Json的数据格式是怎么回事,才好理解相应的代码。

Json格式必须遵循以下原则,不得违反——

一、必须以一个对象或者数组作为根节点;

例如:

 以一个对象作为根节点 {"xx":"xx","xx":"xx","xx":{..},"xx":[]....}

 以一个数组作为根节点   [{},{},...]

二、使用{}表示对象,[]表示数组,中间的属性使用键值对的方式;

三、键值对的键必须使用双引号“”包围住;

四、键值对中的值可以是对象,数组,数字,字符串,true/false,null(空值);

 

遵循以上要点,下面开始Jason的解析工作:

第一步:在vs中首先添加LitJson引用(如下图),使用的时候导入命名空间:using LitJson;

第二步:获取要解析的文件,并书写解析类

例如格式

[

{"id":1,"name":"第一式","damage":50},

{"id":2,"name":"第二式","damage":80},

{"id":3,"name":"第三式","damage":100}

]

解析类如下写法:

public class Skill
{
public int id { set; get; }
public string name { set; get; }
public int damage { set; get; }

public override string ToString()
{
return string.Format("id:{0};name:{1};damage:{2}", id, name, damage);
}
}

注意事项:解析的属性必须与json中的属性完全一致,否则无法获取数据;此处为了获得输出结果重写tostring方法。

第三步:使用LitJson进行解析

//将解析的文本读入一个字符串,如果是unity也是一样
string str = File.ReadAllText("Skill.Json");
//要解析的是一个Skill类型的对象数组,使用泛型解析
Skill[] skillList = JsonMapper.ToObject<Skill[]>(str);
//通过foreach遍历数组中的Skill元素并打印输出
foreach (Skill item in skillList)
{
Console.WriteLine(item);
}

 

posted @ 2017-04-26 17:17  云浪  阅读(2770)  评论(0编辑  收藏  举报