Unity3d Unity和.NETCore3.1之间如何交换json?
您好,我正在开发一个Unity3d Unity和.NETCore3.1之间如何交换json?,unity3d,json-deserialization,asp.net-core-3.1,net-standard-2.1,Unity3d,Json Deserialization,Asp.net Core 3.1,Net Standard 2.1,您好,我正在开发一个Unity应用程序,它将使用.NET Core 3.1API。我的模型在一个单独的.NET标准2.0dll中。我本来会选择2.1来使用JsonSerializer类,但是Unity还不支持它 我的问题是: 如何在两个应用程序之间序列化和反序列化数据。 如果我使用Newtonsoft.Json序列化,那么在使用JsonUtility.FromJson反序列化时,另一端会发生什么情况 两者之间有转换吗? Unity和JsonSerializer之间是否有转换 有什么方法可以在两者
Unity
应用程序,它将使用.NET Core 3.1
API
。我的模型在一个单独的.NET标准2.0
dll
中。我本来会选择2.1
来使用JsonSerializer
类,但是Unity
还不支持它
我的问题是:
如何在两个应用程序之间序列化和反序列化数据。
如果我使用Newtonsoft.Json
序列化,那么在使用JsonUtility.FromJson
反序列化时,另一端会发生什么情况
两者之间有转换吗?
Unity
和JsonSerializer
之间是否有转换
有什么方法可以在两者之间共享.Net标准2.1 dll吗?首先,
System.Text.Json不依赖于.Net标准2.1,只依赖于2.0。因此,只需将NuGet添加到.NET标准2.0类库中即可。此外,虽然首选使用System.Text.Json
,但如果您更喜欢在ASP.NET Core 3.1+中使用,您仍然可以选择继续使用Newtonsoft.Json
其次,任何一个库的最终结果都只是JSON,因此任何一个库都可以读取另一个库创建的内容。唯一的潜在差异在于它们的序列化方式,即camel case与pascal case、自定义值转换器等。但是,所有这些都可以在两个库中配置,因此,您只需要确保一个序列化的方式也是另一个反序列化的方式。我想使用System.Text.Json
。您使用了它吗?我下载了.NET 4.X System.Text.Json NuGet包,并将包中的所有DLL复制到我的Unity Plugin文件夹中,它在编辑器中似乎运行良好,但在WebGL构建中不起作用,它不会崩溃或输出任何错误,但反序列化方法返回一个“空”对象(我创建了正确的类型实例,但它没有填充任何属性),但是相同的方法调用在编辑器中工作。调试/查找问题有点困难,因为web控制台根本没有显示任何错误。