点击Vs菜单栏中的工具,找到NuGet包管理器中的程序包管理控制台,在控制台里面输入Install-Package LitJson -Version 0.19.0,按回车就可以下载这个包,引用里面就有LitJson包了。
LitJSon:
LitJson 是一个用于处理 JSON 数据的 C# 库。它提供了一种简单而灵活的方式来解析和生成 JSON 格式的数据。
在Server中创建一个Helper文件夹,在这个目录下创建一个JsonHelper.cs脚本,里面就包含着一些解析以及生成JSON格式的数据的方法
internal class JsonHelper
{
//接受一个对象作为参数,并将其序列化为 JSON 格式的字符串。
public static string ToJson(object x)
{
string str = JsonMapper.ToJson(x);
return str;
}
//接受一个 JSON 格式的字符串作为参数,并将其反序列化为指定类型的对象。
public static T ToObject<T>(string x)
{
return JsonMapper.ToObject<T>(x);
}
//接受一个字节数组作为参数,假定这个字节数组表示一个 UTF-8 编码的字符串,并将其反序列化为指定类型的对象。
public static T ToObject<T>(byte[] b)
{
string x = Encoding.UTF8.GetString(b, 0, b.Length);
return ToObject<T>(x);
}
public static string GetTestToString()
{
JsonTest jsonTest = new JsonTest();
jsonTest.id = 1;
jsonTest.name = "jsonTest";
//先用ToJson将jsonTest序列化为JSON格式的字符串,再用ToObject将jsonTest反序列化为指定类型的对象
var jsonTestObj = ToObject<JsonTest>(ToJson(jsonTest));
// Console.WriteLine(jsonTestObj.id);
Debug.Log($"{jsonTestObj.id} // {jsonTestObj.name}");
return ToJson(jsonTest);
}
}
public class JsonTest//一个测试
{
public int id;
public string name;
}
namespace Server
{
internal class Program
{
static void Main(string[] args)
{
TCPServer tCPServer = new TCPServer();
//启动服务端
tCPServer.Start();
while (true)
{
//标准输入流(默认为键盘)中读取下一行字符,并将该行作为字符串返回
var str = Console.ReadLine();
//tCPServer.tempClient.Send(Encoding.UTF8.GetBytes($"测试主动发送数据:{str}"));
var jsonStr = JsonHelper.GetTestToString();
}
}
}
}
最后找到\NetProject\Server\Server\packages\LitJson.0.19.0\lib\net48复制进Unity的Asset目录下新创建的Plugins文件当中,以免UnityEditor找不到LitJson