【发布时间】:2020-05-15 06:50:29
【问题描述】:
我有不同领域的 Json Collection。所有字段都是动态的。请看下面的例子。
[{"KB":"1","Id":"01","MemCode":1,"A":"2","B":"1","C":"2010-01-01T00:00:00","D":1}
{"KB":"1","Id":"01","MemCode":2,"A":"2","B":"1","C":"2010-01-01T00:00:00","D":2},
{"KB":"1","Id":"01","MemCode":2,"A":"2","B":"1","C":"2010-01-01T00:00:00","D":3},
{"KB":"1","Id":"01","MemCode":2,"A":"2","B":"1","C":"2010-01-01T00:00:00","D":4}]
我想将四个数字 json 与第一个进行比较并确定变化, 就像第四行 Memcode 是 2 而第一行 Memcode 是 1。所以这里的 memcode 是从 2 变为 1。 对于所有领域都是明智的。该字段可以是任何类型,如日期时间/字符串等。这只是示例。 JSON 可能很长,有很多字段。但所有 json 字符串都是相同的字段。
所有字段都是动态的。我想要一些方法来进行上述计算并使用旧值和新值返回字段更改。
我想使用 C# 和 Newtonsoft.Json。我不知道如何实现上述一个。你能帮我/指导我吗?
提前谢谢你。
编辑:- 5/10
你好,对不起,如果我不清楚。让我再解释一次。我想开发一些接受 JSON 集合的通用方法。这个 JSON 有许多不同的字段。 假设 Collection 有 5 个 JSON。所有 5 个 JSON 都有相同数量的字段,但值不同,或者可能是相同的值。
现在我想比较第一个 JSON 数和 N 个 JSON。确定哪个字段已更改。取那个字段,它是集合中的旧值/新值。旧值将是 N 个字段值,新值将是 1 个字段值。对其他 JSON 继续这种方式。现在第一个数字 JSON 与 N-1 进行比较。并识别更改字段。以这种方式继续直到所有收集完成。
返回值是字段和旧值,新值。
该字段可以是字符串,日期的数字。
我可以使用 for 循环,但我想要一些通用的方法,既省时又符合新的 C# 功能。
希望这次我说清楚了。
非常感谢。。
【问题讨论】:
-
如果您使用动态反序列化器,那么它将识别类型,然后您可以使用该类型的默认比较器
-
你尝试过什么来达到这个结果?预期的结果是什么,字段变化是什么意思?
-
您好,如果我不清楚,对不起。让我再解释一次。