C#和unity中,LitJson的简单基本用法
最近做游戏网络通信的时候,需要传输很多信息,之前都是把各种信息拼接成字符串,然后接收到字符串后在个顺序分割得到信息,但是当信息一多的时候就比较麻烦了.就学习了下json来传输,通过键值对来进行设置信息和解析信息就方便多了,LitJson是一个封装好的C#的Json处理dll,很小只有几十K.就用他进行处理
1.首先,下载引入LitJson.dll插件
具体如何引入不多介绍了,网上一搜一大堆
下载地址:https://download.csdn.net/download/liu1067082341/10717875
也可以去其他地方下载网上很多
2.基本用法
static void Main(string[] args)
{
//最简单的用法(以学生信息为例)
JsonData student_set = new JsonData(); //创建一个json对象,并添加键值对
student_set["name"] = "ZhangSan";
student_set["age"] = 18;
string strJson = student_set.ToJson();//将json转换成字符串
Console.WriteLine("转换后的字符串为:" + strJson);
JsonData student_get = JsonMapper.ToObject(strJson);//再将字符串转为 json 对象
Console.WriteLine(student_get["name"].ToString()); //输出json对象中键为"name"的值
Console.WriteLine("\n\n\n");
//带有子对象的用法,在上面的j的基础上添加一个子对象 info
student_set["info"] = new JsonData();
student_set["info"]["phone"] = 123456;
student_set["info"]["address"] = "anhui";
strJson = student_set.ToJson();
Console.WriteLine("转换后的字符串为:" + strJson);
JsonData student_get2 = JsonMapper.ToObject(strJson);
Console.Write("电话号为:"+student_get2["info"]["phone"] + " 地址为:" + student_get2["info"][1]); //两种方法输出j子对象中的信息,键名或者下标
Console.WriteLine("\n\n\n");
//多个子对象 (以玩家为例) ,每个玩家都是一个对象,每个对象含名字,和等级两个键值对
JsonData player_set = new JsonData();
player_set["player1"] = new JsonData();
player_set["player1"]["name"] = "Yasuo";
player_set["player1"]["level"] = "10";
player_set["player2"] = new JsonData();
player_set["player2"]["name"] = "Lee";
player_set["player2"]["level"] = "20";
player_set["player3"] = new JsonData();
player_set["player3"]["name"] = "Zed";
player_set["player3"]["level"] = "30";
strJson = player_set.ToJson();
Console.WriteLine("转换后的字符串为:"+ strJson);
JsonData player_get = JsonMapper.ToObject(strJson);
Console.WriteLine("共解析到 "+player_get.Count+" 个玩家信息");//可以获取共有几个对象,子对象的数量也可以这么获取
Console.WriteLine("玩家一名称: " + player_set["player1"]["name"] + " 玩家一的级别: " + player_get[0][1]);
Console.ReadKey();
}