gpt4 book ai didi

c# - Json.net:通过对象 Id 合并两个 json 数组

转载 作者:太空狗 更新时间:2023-10-30 01:18:00 25 4
gpt4 key购买 nike

例如,我想通过对象 ID 打乱一个 json 数组。假设我有这个 json 数组:

 [{"Id":"1", "a":"1", "b":"2"},
{"Id":"2", "a":"3", "b":"1"},
{"Id":"3", "a":"5", "b":"1"}]

我想用这个数组更新它

 [{"Id":"1", "a":"32", "b":"42"},
{"Id":"2", "a":"3", "b":"1", "c":"23"},
{"Id":"12", "a":"12", "b":"45"}]

预期的结果应该是:

[{"Id":"1", "a":"32", "b":"42"},
{"Id":"2", "a":"3", "b":"1", "c":"23"},
{"Id":"3", "a":"5", "b":"1"},
{"Id":"12", "a":"12", "b":"45"}]

最佳答案

您可以简单地在您的 JArray 上使用 Linq , 因为这些是 IEnumerable<JToken>

var first = JArray.Parse(@"[{'Id':'1', 'a':'1', 'b':'2'},
{'Id':'2', 'a':'3', 'b':'1'},
{'Id':'3', 'a':'5', 'b':'1'}]");


var second = JArray.Parse(@"[{'Id':'1', 'a':'32', 'b':'42'},
{'Id':'2', 'a':'3', 'b':'1', 'c':'23'},
{'Id':'12', 'a':'12', 'b':'45'}]");

var resultAsEnumerable = first.Concat(second)
.GroupBy(t => t["Id"])
.Select(g => g.Last());

如果您需要将结果作为 JArray ,您可以轻松地将结果转换为它:

var resultAsJArray = new JArray(resultAsEnumerable.ToArray());

关于c# - Json.net:通过对象 Id 合并两个 json 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29254713/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com