gpt4 book ai didi

c# - 在 JSON 数组中查找重复对象

转载 作者:行者123 更新时间:2023-12-02 15:59:18 27 4
gpt4 key购买 nike

我是 C# 的新手,需要一些指导。我需要搜索一个大型 json 数组以查找重复的对象并列出出现的次数。

样本数组

{
"data":
[
{
"date": "20220101",
"someID": "ID1",
"someType1": "SRVC",
"someType2": "SEND"
},
{
"date": "20220101",
"someID": "ID1",
"someType1": "SRVC",
"someType2": "SEND"
},
{
"date": "20220101",
"someID": "ID2",
"someType1": "SRVC",
"someType2": "RECV"
},
{
"date": "20220101",
"someID": "ID2",
"someType1": "SRVC",
"someType2": "RECV"
},
{
"date": "20220101",
"someID": "ID2",
"someType1": "SRVC",
"someType2": "RECV"
},
{
"date": "20220101",
"someID": "ID2",
"someType1": "SRVC",
"someType2": "SEND"
},
{
"date": "20220101",
"someID": "ID2",
"someType1": "SRVC",
"someType2": "SEND"
},
{
"date": "20220101",
"someID": "ID2",
"someType1": "SRVC",
"someType2": "SEND"
}

]
}

我已经能够搜索并找到重复的元素,但找不到完整的对象。输出应该是:

{
"result":
[
{
"date": "20220101",
"someID": "ID1",
"someType1": "SRVC",
"someType2": "SEND",
"objCount": 2
},
{
"date": "20220101",
"someID": "ID2",
"someType1": "SRVC",
"someType2": "RECV",
"objCount": 3
},
{
"date": "20220101",
"someID": "ID2",
"someType1": "SRVC",
"someType2": "SEND",
"objCount": 3
}

]
}

任何帮助我指明正确方向的人都会很棒。提前致谢

最佳答案

你可以尝试创建模型让你的JSON数据成为对象

public class Datum
{
public string date { get; set; }
public string someID { get; set; }
public string someType1 { get; set; }
public string someType2 { get; set; }
}

public class Root
{
public List<Datum> data { get; set; }
}

然后您可以使用 JsonConvert.DeserializeObject 方法将 JSON 值反序列化为对象,然后使用 lambda 从列表中获取重复值。

var root = JsonConvert.DeserializeObject<Root>(data);
var res = JsonConvert.SerializeObject(root.data.GroupBy(x=> new {
x.someID,
x.someType1,
x.someType2,
x.date
}).Where(x=>x.Count()>1).Select(x=>x.Key));

c# online

关于c# - 在 JSON 数组中查找重复对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71051896/

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