比较2个JSON - 属性计数 - c#

时间:2016-05-31 06:57:30

标签: c# json json.net

假设重复代码基于某些嵌套结构生成巨大的JSON。假设在一个糟糕的日子里出现了糟糕的数据,我们的新JSON的大小比上一个好的JSON小30%。

我的目标是在反序列化JSON时计算所有主要属性,并将其与过去的计数统计数据进行比较,并通知JSON生成器新的JSON是坏的。

有一种简单的方法吗?使用C#和NewtonSoft.Json进行反序列化。

例如:假设JSON封装了n-array树之类的结构。每个节点包含source字段作为字符串(可以为null)。现在,在第一次运行中,JSON中存在100个节点,其中70%包含有效的source字符串。在第二次运行中,有105个节点具有80%的有效source字符串(GOOD数据)。在第三次运行中,有40个节点,其中有20%的有效source字符串。我认为这是"坏"数据。我想在没有摄取更新的不良数据的情况下失败。

每次我们运行重复代码时,我都希望将它与上次运行的计数统计数据进行比较,如果数据不正确,则希望在代码中失败,如示例中所述。

1 个答案:

答案 0 :(得分:0)

您所描述的是业务逻辑,而不是序列化程序应该关注的任何内容。

我认为最好的方法是在反序列化和处理反序列化数据之间添加一个验证步骤。

这意味着验证器会对反序列化的POCO类进行迭代,并计算有多少节点具有有效的GET /read HTTP/1.1 HTTP/1.1 200 OK Content-Type: text/html {temp:[[24.00,24.56],[24.00,24.56]; Client disconnected GET /favicon.ico HTTP/1.1 Client disconnected GET /read HTTP/1.1 HTTP/1.1 200 OK Content-Type: text/html {temp:[[24.00,24.56]; Client disconnected 字符串。如果它们低于某个阈值,则执行应该停止并且应该通知JSON生成器。

如果您希望阈值是动态的(即它应该取决于之前的计数),那么您必须将计数值存储在文件或数据库中,以便在下一个JSON到达时检索它。