我目前正在使用 JsonConvert().SerialiseObject(dt) 将数据表序列化为 JSON 格式,如下所示
{“id”:“123”,“名称”:“xyz”,“值”:“a”},{“id”:“234”,“名称”:“xyz”,“值”: "a"},{"id": "789, "name": "x", "value": "b"}
等
我希望格式按值分组,例如:-
[
{
"value":"a",
"members":[
{
"id":"123",
"name":"xyz"
},
{
"id":"234",
"name":"xyz"
}
]
},
{
"value":"b",
"members":[
{
"id":"789",
"name":"x"
}
]
}
]
使用 newtonsoft 可以轻松实现这一点吗?
最佳答案
您最好在序列化之前以所需的格式获取数据。 例如这样的事情:
using System;
using System.Linq;
using System.Text.Json;
var dataTable = new[]
{
new { Id = 123, Name = "xyz", value = "a" },
new { Id = 123, Name = "xyz", value = "a" },
new { Id = 123, Name = "xyz", value = "b" },
};
var groupedByValue = dataTable
.GroupBy(x => x.value)
.Select(x => new
{
Value = x.Key,
Members = x.Select(m => new
{
m.Id,
m.Name
})
});
var json = JsonSerializer.Serialize(groupedByValue);
Console.WriteLine(json);
关于c# - 如何将字符串序列化为 JSON 并按其中一个值进行分组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70125023/