如何设置Visual Studio默认JSON转换器,替换Newtonsoft.Json为System.Text.Json?
解决Visual Studio自动导入Newtonsoft.Json而非System.Text.Json的问题
方法1:调整命名空间导入优先级
在Visual Studio里可以通过项目设置指定优先匹配的命名空间:
- 右键项目→属性,在.NET Core/.NET 5+项目中切换到构建→高级选项;旧版.NET Framework项目则找引用→导入的命名空间
- 将
System.Text.Json和System.Text.Json.Serialization添加到导入列表,把Newtonsoft.Json移到列表底部或者直接移除(如果不需要全局导入) - 之后输入
JsonSerializer或[JsonIgnore]时,VS会优先匹配System.Text.Json下的类型
方法2:添加全局命名空间别名
在项目的全局导入文件(比如.NET 6+的GlobalUsings.cs,或者任意根级代码文件)里添加全局别名:
global using JsonSerializer = System.Text.Json.JsonSerializer; global using JsonIgnore = System.Text.Json.Serialization.JsonIgnoreAttribute;
全局别名会作用于整个项目,直接写JsonSerializer.Serialize或[JsonIgnore]时默认对应System.Text.Json的类型,VS不会再自动导入Newtonsoft的命名空间
方法3:限制Newtonsoft.Json的智能提示(可选)
如果还没完全移除Newtonsoft但想减少误导入:
- 右键项目中的Newtonsoft.Json引用→属性
- 将别名改为冷门名称(比如
NewtonsoftAlias) - 之后要使用Newtonsoft的类型必须手动写
using Newtonsoft = NewtonsoftAlias;才能访问,VS不会自动导入它的命名空间
内容的提问来源于stack exchange,提问作者rd1218
相关产品推荐
相关产品推荐

