提问人:Will McVay 提问时间:11/16/2023 最后编辑:dbcWill McVay 更新时间:11/17/2023 访问量:73
将 System.Text.Json 与 Unity 配合使用
Use System.Text.Json with Unity
问:
我在寻找与 Unity 的最新 LTS 版本 (2022.3.9f1) 兼容的 JSON 序列化/反序列化解决方案时遇到了困难,问题是需要与不包括任何 Unity 运行时库的软件共享的外部类库特别需要它,并且我还需要 JSON 的可访问性, 至少在这一点上,出于调试目的,不需要为每个有效负载提供详细的类。所以基本上 JSON.NET 是行不通的,它必须是System.Text.Json,在目标框架和依赖项之间,要让它与Unity一起工作存在许多障碍。JsonElement
我希望能够只在我的类库的源文件中,让它像一台好的计算机一样服从我。但是,通过以 .NET Standard 2.1 框架为目标,以创建 Unity 可以在不溅射和死亡的情况下加载的类库,如果不从 NuGet 获取该命名空间,我默认包含该命名空间还为时过早。好的,很好,除了最新版本不支持 .NET Standard 2.1,我需要升级我的目标框架,但我不能,因为 Unity.using System.Text.Json;
好的,所以我可以在 System.Text.Json 上回滚到 6.0.9,并且有关目标框架的警告消失了。库的开发工作,一切顺利,回到 Unity 重新导入更新的库,没有。由于引用缺失或不兼容,因此不会包含库,因此不会生成程序集,因为库中的错误。
问题是System.Text.Json @ 6.0.9需要在Unity项目中,它的三个依赖项也是如此:plugins
- System.Text.Encodings.Web @ 6.0.0
- System.Runtime.CompilerServices.Unsafe @ 6.0.0
- Microsoft.Bcl.AsyncInterfaces @ 6.0.0
如果在 Visual Studio 的“解决方案资源管理器”中的“包”树下和 System.Text.Json 包上的“在文件资源管理器中打开文件夹”下查看这些引用,则都可以在文件夹中找到这些 dll。build
如果有更好的方法可以做到这一点,请务必向我提供线索,但我找到的答案都没有真正起作用,或者(相对)简单。
答: 暂无答案
上一个:浮点数学坏了吗?
评论
动态
[+]
JsonElement
可访问性——Json.NET 中的等效类型是JToken
from LINQ to JSON,可以起诉它来反序列化没有固定架构的自由格式 JSON。我建议明确使用 .JToken
dynamic