Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从JSON响应中选择并组合属于相同ID的所有元素作为子列表_C#_Json_Linq - Fatal编程技术网

C# 从JSON响应中选择并组合属于相同ID的所有元素作为子列表

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

问题

下面是一个JSON响应,其中有3条记录。可以有多个属于同一ID的记录,例如ID 75029560。我想获取属于该ID的一些数据作为子列表,然后移动到另一个ID。如果有,请参阅下面所需的输出

任何帮助都会很好,我是C和LINQ的新手

JSON响应

期望输出


您可以使用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
                    }
                ]
            }
        }
    ]
}