我参加了以下课程
public class NameDTO
{
public string Name;
}
public class ValDTO
{
public string Val;
}
我将列表添加到上面的类中,如图3和图4所示,并将它们组合并转换为json。
var combined1 = _nameDetials1.Zip(_valDetials1, (name1, val1) => new { name1.Name, val1.Val }) .ToDictionary(k => k.Name, k => k.Val);
var jsonSerialiser1 = new JavaScriptSerializer();
var json1 = jsonSerialiser1.Serialize(combined1);
如何进行分组,以便我可以得到正确的输出,如image2
所示感谢。
答案 0 :(得分:0)
如果可以,您可以使用Json.NET。 这是一个解决问题的例子。
const string JSON = @"{
""message-Code-1"": ""000"",
""msg-Number-Pos1-1"": ""0000"",
""msg-Number-Pos2-1"": ""1"",
""msg-Number-Pos3-1"": ""1"",
""message-Code-2"": ""1"",
""msg-Number-Pos1-2"": ""0001"",
""msg-Number-Pos2-2"": ""2"",
""msg-Number-Pos3-2"": ""1"",
""message-Code-3"": ""0002"",
""msg-Number-Pos1-3"": ""3"",
""msg-Number-Pos2-3"": ""1"",
""msg-Number-Pos3-3"": ""1"",
""message-Code-4"": ""0003"",
""msg-Number-Pos1-4"": ""3"",
""msg-Number-Pos2-4"": ""1"",
""msg-Number-Pos3-4"": ""1""
}";
JObject loMessages = JObject.Parse(JSON);
JArray loMessageArray = new JArray();
JObject loAddMessage;
foreach (var loMessageGroup in loMessages.Properties().GroupBy(item => Regex.Match(item.Name,@".*-(?<pos>\d+)").Groups["pos"].Value))
{
loAddMessage = new JObject();
foreach (var loMessage in loMessageGroup)
loAddMessage[loMessage.Name] = loMessage.Value.ToString();
loMessageArray.Add(loAddMessage);
}
Console.WriteLine(loMessageArray.ToString());
Json Ouput是这样的:
[
{
"message-Code-1": "000",
"msg-Number-Pos1-1": "0000",
"msg-Number-Pos2-1": "1",
"msg-Number-Pos3-1": "1"
},
{
"message-Code-2": "1",
"msg-Number-Pos1-2": "0001",
"msg-Number-Pos2-2": "2",
"msg-Number-Pos3-2": "1"
},
{
"message-Code-3": "0002",
"msg-Number-Pos1-3": "3",
"msg-Number-Pos2-3": "1",
"msg-Number-Pos3-3": "1"
},
{
"message-Code-4": "0003",
"msg-Number-Pos1-4": "3",
"msg-Number-Pos2-4": "1",
"msg-Number-Pos3-4": "1"
}
]