Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unity3d Unity和.NETCore3.1之间如何交换json?_Unity3d_Json Deserialization_Asp.net Core 3.1_Net Standard 2.1 - Fatal编程技术网

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控制台根本没有显示任何错误。