c# - 如何将字符串序列化为 JSON 并按其中一个值进行分组?

标签 c# json serialization json.net

我目前正在使用 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/

相关文章:

c# - NHibernate SQL 创建导致错误

ios - 如何修复 RestKit JSON 序列化问题

ios - Swift:解析 JSON 字典值

vb.net - 序列化包含对象列表的对象

symfony - 使用 NormalizerAwareTrait 的 Normalizer 空引用

c# - 数据绑定(bind)到只读属性

c# - .NET 程序集绑定(bind),我可以将一个程序集映射到另一个程序集中的版本吗?

c# - 如何从 Parallel.ForEach 循环内部抛出异常?

javascript - 循环 json 对象时出现问题

java - 反序列化对象,其类 serialVersionUID 在 Java 中已更改