C# 从JSON响应中选择并组合属于相同ID的所有元素作为子列表
问题 下面是一个JSON响应,其中有3条记录。可以有多个属于同一ID的记录,例如ID 75029560。我想获取属于该ID的一些数据作为子列表,然后移动到另一个ID。如果有,请参阅下面所需的输出 任何帮助都会很好,我是C和LINQ的新手 JSON响应 期望输出C# 从JSON响应中选择并组合属于相同ID的所有元素作为子列表,c#,json,linq,C#,Json,Linq,问题 下面是一个JSON响应,其中有3条记录。可以有多个属于同一ID的记录,例如ID 75029560。我想获取属于该ID的一些数据作为子列表,然后移动到另一个ID。如果有,请参阅下面所需的输出 任何帮助都会很好,我是C和LINQ的新手 JSON响应 期望输出 您可以使用Newtonsoft.Json.Linq实现所需的输出-将响应解析为JObject,按id分组并格式化结果 var document=JObject.Parsejson; var result=document[list].Gr
您可以使用Newtonsoft.Json.Linq实现所需的输出-将响应解析为JObject,按id分组并格式化结果 var document=JObject.Parsejson; var result=document[list].GroupByitem=>item[installation]?[id], id,items=>new { 用户=新 { 身份证件 数据=项目。选择i=>new { wattHourCumulative=i[wattHourCumulative]?.值, wattHourPer15Min=i[wattHourPer15Min]?.值 }托利斯先生 } }; var jsonObject=JObject.FromObjectnew{list=result}; var resultJson=jsonObject.ToString; 请记住,您的输出格式不正确,数据属性应为数组,因为您将多个记录分组,列表数组应包含多个用户项 结果如下
{
"list": [{
"user": {
"id": 75029560,
"data": [{
"wattHourCumulative": 0,
"wattHourPer15Min": 120
}, {
"wattHourCumulative": 0,
"wattHourPer15Min": 170
}
]
}
}, {
"user": {
"id": 78206452,
"data": [{
"wattHourCumulative": 0,
"wattHourPer15Min": 400
}
]
}
}
]
}
好的,那么你要做的是。如果不是这样,请告诉我们您到目前为止尝试了什么?您是否需要在所需输出中具有可变属性名称的对象列表?要获取属于该ID的一些数据作为子列表,然后移动到另一个ID(如果您的数据刚刚分组),not movedDesired输出不是有效的json格式。你在找什么?desried中的user元素不能是逗号分隔的值,它必须是一个数组,数据也是如此。非常感谢,您的输入对我帮助很大。同时,它也向我展示了LINQ的能力。我还可以问您如何获取名称,item[installation]?[name]。与其他属性的获取方式实际上相同,具体取决于您希望获取的级别。您希望它与“id”一起使用吗?那么,通过表达式将其包含到group by expressionOr或通过整个安装对象将其包含到group by中并从itI获取id和名称是有意义的。我更愿意根据id执行group by on,因为将来如果安装响应至少不同,我将不依赖其余的值。
{
'list': [
{
'user': {
'id': 75029560,
'data': [{
'record': {
'wattHourCumulative': 0,
'wattHourPer15Min': 120
},
'record': {
'wattHourCumulative': 0,
'wattHourPer15Min': 170
}]
},
},{
'id': 78206452,
'data': {
'record': {
'wattHourCumulative': 0,
'wattHourPer15Min': 400
}
}
}
}
]
}
{
"list": [{
"user": {
"id": 75029560,
"data": [{
"wattHourCumulative": 0,
"wattHourPer15Min": 120
}, {
"wattHourCumulative": 0,
"wattHourPer15Min": 170
}
]
}
}, {
"user": {
"id": 78206452,
"data": [{
"wattHourCumulative": 0,
"wattHourPer15Min": 400
}
]
}
}
]
}