在Unity 2022.3.9f1中使用System.Text.Json实现跨库JSON处理方案
兼容Unity 2022.3.9f1 LTS的System.Text.Json序列化方案问题与解决
需求背景
需要为可共享给非Unity软件的外部类库,找到兼容Unity 2022.3.9f1 LTS版本的JSON序列化/反序列化方案,核心要求如下:
- 可访问
JsonElement用于调试 - 无需为每个JSON payload定义详细实体类
- 必须使用
System.Text.Json(JSON.NET无法满足需求)
遇到的障碍
- 为适配Unity选择目标.NET Standard 2.1框架时,默认不存在
System.Text.Json命名空间,需通过NuGet获取,但最新版本的System.Text.Json不支持该框架,且无法升级框架(受限于Unity版本) - 回退使用
System.Text.Json 6.0.9后,外部类库开发正常,但导入Unity项目时,因依赖缺失或兼容性问题无法完成构建
解决方案
将System.Text.Json 6.0.9及其三个依赖项的DLL文件放入Unity项目的plugins文件夹即可解决问题,所需依赖包括:
System.Text.Encodings.Web 6.0.0System.Runtime.CompilerServices.Unsafe 6.0.0Microsoft.Bcl.AsyncInterfaces 6.0.0
这些DLL文件可从Visual Studio本地NuGet包的build目录中找到。
内容的提问来源于stack exchange,提问作者Will McVay
相关产品推荐
相关产品推荐

