public class NameDTO
{
public string Name;
}
public class ValDTO
{
public string Val;
}
_nameDetials = new List<NameDTO>();
_valDetials = new List<ValDTO>(); 在List _nameDetials中,我获取键,而在_valDetails中,我获取下面用于块的值,并将它们添加到数组中。在下面给定的值中,我在每个列表中计算为20。
JArray jChildArray = new JArray();
for (int i = 0; i < Math.Max(_nameDetials.Count, _valDetials.Count); i++)
{
JObject jChildObject = new JObject();
jChildObject.Add(_nameDetials[i].Name, _valDetials[i].Val);
jChildArray.Add(jChildObject);
}我有一个json数组,如下所示
[
{
"message-Code": " 0"
},
{
"msg-Number-Pos1": "0"
},
{
"msg-Number-Pos2": "0"
},
{
"msg-Number-Pos3": " "
},
{
"message-Code": " 0"
},
{
"msg-Number-Pos1": "0"
},
{
"msg-Number-Pos2": "0"
},
{
"msg-Number-Pos3": " "
},
{
"message-Code": " 0"
},
{
"msg-Number-Pos1": "0"
},
{
"msg-Number-Pos2": "0"
},
{
"msg-Number-Pos3": " "
},
{
"message-Code": " 0"
},
{
"msg-Number-Pos1": "0"
},
{
"msg-Number-Pos2": "0"
},
{
"msg-Number-Pos3": " "
},
{
"message-Code": " 0"
},
{
"msg-Number-Pos1": "0"
},
{
"msg-Number-Pos2": "0"
},
{
"msg-Number-Pos3": "0"
}
]我想对这些数据进行分组,以获得如下所示的结果。
[
{
"message-Code": " 0",
"msg-Number-Pos1": "0",
"msg-Number-Pos2": "0",
"msg-Number-Pos3": "0"
},
{
"message-Code": " 0",
"msg-Number-Pos1": "0",
"msg-Number-Pos2": "0",
"msg-Number-Pos3": "0"
},
{
"message-Code": " 0",
"msg-Number-Pos1": "0",
"msg-Number-Pos2": "0",
"msg-Number-Pos3": "0"
},
{
"message-Code": " 0",
"msg-Number-Pos1": "0",
"msg-Number-Pos2": "0",
"msg-Number-Pos3": "0"
},
{
"message-Code": " 0",
"msg-Number-Pos1": "0",
"msg-Number-Pos2": "0",
"msg-Number-Pos3": "0"
}
]我想根据相同的键名分组。
我尝试了下面的代码
var grouparray = (from t in jChildArray
group t by new { t }
into grp
select grp.Key.t).ToList();我无法跟踪我是什么,missing.Or,我们可以将一个json数组分组为等号,即在我的例子中为4。我是c#新手,无法找到匹配的代码。有人能帮忙吗?谢谢。
发布于 2017-07-10 13:07:11
您似乎不想按键进行分组,而是按项目的数量分组。你能试试:
private string Serialize(List<NameDTO> _nameDetials, List<ValDTO> _valDetials)
{
JArray jChildArray = new JArray();
for (int i = 0; i < Math.Max(_nameDetials.Count, _valDetials.Count) / 4; i++)
{
var jChildObject = new JObject();
for (int j = 0; j < 4; j++)
jChildObject.Add(_nameDetials[i * 4 + j].Name, _valDetials[i * 4 + j].Val);
jChildArray.Add(jChildObject);
}
return JsonConvert.SerializeObject(jChildArray);
}https://stackoverflow.com/questions/45005355
复制相似问题