如果您的 模型 具有 JSON
可能会忽略的属性,而您希望它是一个错误,请将属性添加
[JsonObject(ItemRequired=Required.Always)]到类中:
类型:必填
一个值,指示是否需要对象的属性。
可能的值为
Required:
- 默认值:该属性不是必需的。默认状态。
- AllowNull:该属性必须在JSON中定义,但可以为空值。
- 始终:该属性必须在JSON中定义,并且不能为空值。
- DisallowNull:该属性不是必需的,但不能为null值(如果存在)。(Json.NET
8.0.1及更高版本。)
该设置是继承的,因此可以将其添加到通用基类中。
更新资料
要针对所有对象全局执行此 *** 作,请对进行子类化
DefaultContractResolver并将
ItemRequired标记添加到所有对象协定中:
public class RequireObjectPropertiesContractResolver : DefaultContractResolver{ protected override JsonObjectContract CreateObjectContract(Type objectType) { var contract = base.CreateObjectContract(objectType); contract.ItemRequired = Required.Always; return contract; }}
然后,在设置中:
var settings = new JsonSerializerSettings { ContractResolver = new RequireObjectPropertiesContractResolver() };
笔记:
* 如问题中所述,该设置
MissingMemberHandling = MissingMemberHandling.Error解决了一个补充问题:如果您的 JSON 可能具有您的 模型 忽略的属性,并且您希望它是一个错误,请使用
MissingMemberHandling.Error。请参阅:MissingMemberHandling设置。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)