unity&C# 中Json(利用LitJson.dll) 的简单用法

时间:2024-04-08 14:31:52

                             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();

        }

3.运行结果

unity&C# 中Json(利用LitJson.dll) 的简单用法