json.net - 如何轻松确定 JsonConvert.DeserializeObject() 是否在我的对象中找到并设置每个属性?
问题描述
我正在使用 json.net 包对文件进行序列化/反序列化设置。我想要一种方法来确保当我反序列化时,在我的类中的每个属性的 json 字符串中找到一个值。如果发现不是类成员的属性,有一种方法可以让 json.net 抛出异常,但反之则不然。例如:
public class Params
{
public double ReqPress = 5.0;
public double LaserTransmission = 0.0;
public int LaserShotCount = 1;
public override string ToString()
{
return JsonConvert.SerializeObject(this, Formatting.Indented);
}
public static OperationalParams FromString(string jsonData)
{
var s = new JsonSerializerSettings();
s.MissingMemberHandling = MissingMemberHandling.Error;
return JsonConvert.DeserializeObject<OperationalParams>(jsonData, s);
}
}
如果我打电话
OperationalParams.FromString("{ ReqPress : 5.0, LaserTransmission : 0.0 }"),
然后我想得到一个错误,告诉我 LaserShotCount 丢失并且没有从 json 数据中初始化。理想情况下,如果缺少一个或多个成员,JsonConvert.DeserializeObject 会抛出异常,但这似乎不受支持。还有另一种方法可以做到这一点吗?
解决方案
推荐阅读
- ruby-on-rails - Rails 5.x:如何在运行时添加路由而不覆盖原始路由表?
- php - 在 wordpress 中重复发布时出现 503 错误
- react-native - 在 react-native expo 应用程序中使用初始化 firestore 的正确方法
- c - 为什么在代码中没有返回值时,函数将值返回给前一个函数?
- node.js - 无法在实时服务器上的 highcharts-export-server 中获取数据标签
- javascript - 由于逗号而不添加 2 值(javascript)
- oracle - Oracle Sqlplus 循环重复调用sql脚本
- windows - 如何在不解释变量的情况下打印/回显 PATH 等 Windows 环境变量?
- opencv - 我如何读取不是由 openCV 编写的 xml
- kubernetes - Kubernetes 集群没有 Kubernetes Master