假设循环代码基于某种嵌套结构生成巨大的JSON。假设在一个糟糕的日子里出现了糟糕的数据,并且我们的新JSON的大小比上一个好的JSON小30%。
我的目标是在反序列化JSON时计算所有主要属性,并将其与过去的计数统计数据进行比较,并通知JSON生产者新的JSON不好。
有简单的方法吗?使用C#和NewtonSoft.Json进行反序列化。
例如:假设JSON封装了n数组树状结构。每个节点都包含作为字符串的source
字段(可以为null)。现在,在第一次运行中,JSON中有100个节点,其中70%包含有效的source
字符串。在第二次运行中,有105个节点具有80%的有效source
字符串(GOOD数据)。在第三次运行中,有40个节点具有20%的有效source
字符串。我认为这是"糟糕"的数据。我想在这里失败,而不摄入更新的坏数据。
每次运行循环代码时,我都希望将其与上次运行的计数统计信息进行比较,并且如果数据不正确,我希望使代码失败,如示例中所述。
您所描述的是业务逻辑,而不是序列化程序应该关心的。
我认为最好的方法是在反序列化和反序列化数据的处理之间添加一个验证步骤。
这意味着验证器对反序列化的POCO类进行迭代,并统计有多少节点具有有效的source
字符串。如果它们低于某个阈值,则应停止执行,并通知JSON生产者。
如果您希望阈值是动态的(即它应该取决于以前的计数),那么您必须将计数值存储在文件或数据库中,以便在下一个JSON到达时检索它。