C#JsonSerializer。序列化生成的json中的添加键值

C#JsonSerializer。序列化生成的json中的添加键值,c#,json,jsonserializer,C#,Json,Jsonserializer,我需要将表中的数据按2个字段分组,以便为最终用户对可视化进行分类,我尝试了这种方式,只是生成的json不包含作为类别名称的键 我的桌子: 结果 JsonSerializer.Serialize(QueryNedGroups) 不包括键值。 如何在生成的json中包含密钥,因为我将在前端的foreach中使用它? 谢谢 Json.NET序列化“key”:[array]集合属性(IEnumerable)或字典的结构,它不知道如何以其他方式序列化具有属性和可枚举元素的类 您也不能使用[JsonPr

我需要将表中的数据按2个字段分组,以便为最终用户对可视化进行分类,我尝试了这种方式,只是生成的json不包含作为类别名称的键

我的桌子:

结果

JsonSerializer.Serialize(QueryNedGroups)

不包括键值。 如何在生成的json中包含密钥,因为我将在前端的foreach中使用它? 谢谢

Json.NET序列化
“key”:[array]
集合属性(
IEnumerable
)或
字典的结构,它不知道如何以其他方式序列化具有属性和可枚举元素的类

您也不能使用
[JsonProperty(“key”)]public IEnumerable Items{get;set;}
,因为您在编译时不知道
“key”
的值

您可以从分组中创建嵌套字典,并序列化:

var queryNestedDictionaries = queryNestedGroups.ToDictionary(g => g.Key, 
    v => v.Values.ToDictionary(gg => gg.Key, gg => gg.Values));
或者为
i分组创建一个自定义转换器
,并将键作为属性名写入,将值作为数组写入。

您是否可以将您的问题分享给大家?另外,您是否可以将您的问题作为文本而不是屏幕截图包含在代码和JSON中?此处建议不要将图像用于文本数据,请参阅和了解原因。请澄清您使用的JSON序列化程序-Newtonsoft或System.Text.JSON(或其他-请指定)
iGroup
实现
IEnumerable
System.Text.Json
和Json.NET将可枚举项序列化为数组,而不是对象。有关原因,请参见和。如果您需要解决方法,我们需要查看并了解您正在使用的序列化程序。
[
  [
    [
      {
        "Id": 1,
        "IdMod": 1,
        "Modulo": "Catalogo",
        "Submod": "Produtos",
        "Nome": "Visualizar Produtos",
        "Valor": "CAT_PROD_LISTA"
      },
      {
        "Id": 2,
        "IdMod": 1,
        "Modulo": "Catalogo",
        "Submod": "Produtos",
        "Nome": "Gravar Produtos",
        "Valor": "CAT_PROD_GRAVA"
      },
      {
        "Id": 3,
        "IdMod": 1,
        "Modulo": "Catalogo",
        "Submod": "Produtos",
        "Nome": "Excluir Produtos",
        "Valor": "CAT_PROD_EXCLUI"
      }
    ],
    [
      {
        "Id": 4,
        "IdMod": 1,
        "Modulo": "Catalogo",
        "Submod": "Grupos",
        "Nome": "Visualizar Grupos",
        "Valor": "CAT_GRUPO_LISTA"
      },
      {
        "Id": 5,
        "IdMod": 1,
        "Modulo": "Catalogo",
        "Submod": "Grupos",
        "Nome": "Gravar Grupos",
        "Valor": "CAT_GRUPO_GRAVA"
      },
      {
        "Id": 6,
        "IdMod": 1,
        "Modulo": "Catalogo",
        "Submod": "Grupos",
        "Nome": "Excluir Grupos",
        "Valor": "CAT_GRUPO_EXCLUI"
      }
    ],
    [
      {
        "Id": 7,
        "IdMod": 1,
        "Modulo": "Catalogo",
        "Submod": "Categorias",
        "Nome": "Visualizar Catagorias",
        "Valor": "CAT_CAT_LISTA"
      },
      {
        "Id": 8,
        "IdMod": 1,
        "Modulo": "Catalogo",
        "Submod": "Categorias",
        "Nome": "Gravar Categorias",
        "Valor": "CAT_CAT_GRAVA"
      },
      {
        "Id": 9,
        "IdMod": 1,
        "Modulo": "Catalogo",
        "Submod": "Categorias",
        "Nome": "Excluir Categorias",
        "Valor": "CAT_CAT_EXCLUI"
      }
    ],
    [
      {
        "Id": 10,
        "IdMod": 1,
        "Modulo": "Catalogo",
        "Submod": "Unidades",
        "Nome": "Visualizar Unidades",
        "Valor": "CAT_UNIT_LISTA"
      },
      {
        "Id": 11,
        "IdMod": 1,
        "Modulo": "Catalogo",
        "Submod": "Unidades",
        "Nome": "Gravar Unidades",
        "Valor": "CAT_UNIT_GRAVA"
      },
      {
        "Id": 12,
        "IdMod": 1,
        "Modulo": "Catalogo",
        "Submod": "Unidades",
        "Nome": "Excluir Unidades",
        "Valor": "CAT_UNIT_EXCLUI"
      }
    ],
    [
      {
        "Id": 13,
        "IdMod": 1,
        "Modulo": "Catalogo",
        "Submod": "Marcas",
        "Nome": "Visualizar Marcas",
        "Valor": "CAT_MARCA_LISTA"
      },
      {
        "Id": 14,
        "IdMod": 1,
        "Modulo": "Catalogo",
        "Submod": "Marcas",
        "Nome": "Gravar Marcas",
        "Valor": "CAT_MARCA_GRAVA"
      },
      {
        "Id": 15,
        "IdMod": 1,
        "Modulo": "Catalogo",
        "Submod": "Marcas",
        "Nome": "Excluir Marcas",
        "Valor": "CAT_MARCA_EXCLUI"
      }
    ],
    [
      {
        "Id": 16,
        "IdMod": 1,
        "Modulo": "Catalogo",
        "Submod": "Atributos",
        "Nome": "Visualizar Atributos",
        "Valor": "CAT_ATTR_LISTA"
      },
      {
        "Id": 17,
        "IdMod": 1,
        "Modulo": "Catalogo",
        "Submod": "Atributos",
        "Nome": "Gravar Atributos",
        "Valor": "CAT_ATTR_GRAVA"
      },
      {
        "Id": 18,
        "IdMod": 1,
        "Modulo": "Catalogo",
        "Submod": "Atributos",
        "Nome": "Excluir Atributos",
        "Valor": "CAT_ATTR_EXCLUI"
      }
    ],
    [
      {
        "Id": 19,
        "IdMod": 1,
        "Modulo": "Catalogo",
        "Submod": "Especifica\u00E7\u00F5es",
        "Nome": "Visualizar Especifica\u00E7\u00E3o",
        "Valor": "CAT_SPEC_LISTA"
      },
      {
        "Id": 20,
        "IdMod": 1,
        "Modulo": "Catalogo",
        "Submod": "Especifica\u00E7\u00F5es",
        "Nome": "Gravar Especifica\u00E7\u00E3o",
        "Valor": "CAT_SPEC_GRAVA"
      },
      {
        "Id": 21,
        "IdMod": 1,
        "Modulo": "Catalogo",
        "Submod": "Especifica\u00E7\u00F5es",
        "Nome": "Excluir Especifica\u00E7\u00E3o",
        "Valor": "CAT_SPEC_EXCLUI"
      }
    ]
  ],
  [
    [
      {
        "Id": 22,
        "IdMod": 2,
        "Modulo": "Cadastros",
        "Submod": "Fornecedores",
        "Nome": "Visualizar Fornecedor",
        "Valor": "CAD_FORN_LISTA"
      },
      {
        "Id": 23,
        "IdMod": 2,
        "Modulo": "Cadastros",
        "Submod": "Fornecedores",
        "Nome": "Gravar Fornecedor",
        "Valor": "CAD_FORN_GRAVA"
      },
      {
        "Id": 24,
        "IdMod": 2,
        "Modulo": "Cadastros",
        "Submod": "Fornecedores",
        "Nome": "Excluir Fornecedor",
        "Valor": "CAD_FORN_EXCLUI"
      }
    ],
    [
      {
        "Id": 25,
        "IdMod": 2,
        "Modulo": "Cadastros",
        "Submod": "Clientes",
        "Nome": "Visualizar Cliente",
        "Valor": "CAD_CLI_LISTA"
      },
      {
        "Id": 26,
        "IdMod": 2,
        "Modulo": "Cadastros",
        "Submod": "Clientes",
        "Nome": "Gravar Cliente",
        "Valor": "CAD_CLI_GRAVA"
      },
      {
        "Id": 27,
        "IdMod": 2,
        "Modulo": "Cadastros",
        "Submod": "Clientes",
        "Nome": "Excluir Cliente",
        "Valor": "CAD_CLI_EXCLUI"
      }
    ]
  ],
  [
    [
      {
        "Id": 28,
        "IdMod": 3,
        "Modulo": "Configura\u00E7\u00F5es",
        "Submod": "Bancos",
        "Nome": "Visualizar Bancos",
        "Valor": "CONFIG_BANCOS_LISTA"
      },
      {
        "Id": 29,
        "IdMod": 3,
        "Modulo": "Configura\u00E7\u00F5es",
        "Submod": "Bancos",
        "Nome": "Gravar Bancos",
        "Valor": "CONFIG_BANCOS_GRAVA"
      },
      {
        "Id": 30,
        "IdMod": 3,
        "Modulo": "Configura\u00E7\u00F5es",
        "Submod": "Bancos",
        "Nome": "Excluir Bancos",
        "Valor": "CONFIG_BANCOS_EXCLUI"
      }
    ],
    [
      {
        "Id": 31,
        "IdMod": 3,
        "Modulo": "Configura\u00E7\u00F5es",
        "Submod": "Estados/Cidade",
        "Nome": "Visualizar Estados/Cidade",
        "Valor": "CONFIG_UFCID_LISTA"
      },
      {
        "Id": 32,
        "IdMod": 3,
        "Modulo": "Configura\u00E7\u00F5es",
        "Submod": "Estados/Cidade",
        "Nome": "Gravar Estados/Cidade",
        "Valor": "CONFIG_UFCID_GRAVA"
      },
      {
        "Id": 33,
        "IdMod": 3,
        "Modulo": "Configura\u00E7\u00F5es",
        "Submod": "Estados/Cidade",
        "Nome": "Excluir Estados/Cidade",
        "Valor": "CONFIG_UFCID_EXCLUI"
      }
    ],
    [
      {
        "Id": 34,
        "IdMod": 3,
        "Modulo": "Configura\u00E7\u00F5es",
        "Submod": "Condi\u00E7\u00F5es de pagamento",
        "Nome": "Visualizar condi\u00E7\u00E3o de pagamento",
        "Valor": "CONFIG_CONDP_LISTA"
      },
      {
        "Id": 35,
        "IdMod": 3,
        "Modulo": "Configura\u00E7\u00F5es",
        "Submod": "Condi\u00E7\u00F5es de pagamento",
        "Nome": "Gravar condi\u00E7\u00E3o de pagamento",
        "Valor": "CONFIG_CONDP_GRAVA"
      },
      {
        "Id": 36,
        "IdMod": 3,
        "Modulo": "Configura\u00E7\u00F5es",
        "Submod": "Condi\u00E7\u00F5es de pagamento",
        "Nome": "Excluir condi\u00E7\u00E3o de pagamento",
        "Valor": "CONFIG_CONDP_EXCLUI"
      }
    ],
    [
      {
        "Id": 37,
        "IdMod": 3,
        "Modulo": "Configura\u00E7\u00F5es",
        "Submod": "Tributa\u00E7\u00E3o CFOP",
        "Nome": "Visualizar CFOP",
        "Valor": "CONFIG_TRIBUT_CFOP_LISTA"
      },
      {
        "Id": 38,
        "IdMod": 3,
        "Modulo": "Configura\u00E7\u00F5es",
        "Submod": "Tributa\u00E7\u00E3o CFOP",
        "Nome": "Gravar  CFOP",
        "Valor": "CONFIG_TRIBUT_CFOP_GRAVA"
      },
      {
        "Id": 39,
        "IdMod": 3,
        "Modulo": "Configura\u00E7\u00F5es",
        "Submod": "Tributa\u00E7\u00E3o CFOP",
        "Nome": "Excluir  CFOP",
        "Valor": "CONFIG_TRIBUT_CFOP_EXCLUI"
      }
    ],
    [
      {
        "Id": 40,
        "IdMod": 3,
        "Modulo": "Configura\u00E7\u00F5es",
        "Submod": "CST ICMS",
        "Nome": "Visualizar CST ICMS",
        "Valor": "CONFIG_TRIBUT_CSTICMS_LISTA"
      },
      {
        "Id": 41,
        "IdMod": 3,
        "Modulo": "Configura\u00E7\u00F5es",
        "Submod": "CST ICMS",
        "Nome": "Gravar CST ICMS",
        "Valor": "CONFIG_TRIBUT_CSTICMS_GRAVA"
      },
      {
        "Id": 42,
        "IdMod": 3,
        "Modulo": "Configura\u00E7\u00F5es",
        "Submod": "CST ICMS",
        "Nome": "Excluir CST ICMS",
        "Valor": "CONFIG_TRIBUT_CSTICMS_EXCLUI"
      }
    ],
    [
      {
        "Id": 43,
        "IdMod": 3,
        "Modulo": "Configura\u00E7\u00F5es",
        "Submod": "CST IPI",
        "Nome": "Visualizar CST IPI",
        "Valor": "CONFIG_TRIBUT_CSTIPI_LISTA"
      },
      {
        "Id": 44,
        "IdMod": 3,
        "Modulo": "Configura\u00E7\u00F5es",
        "Submod": "CST IPI",
        "Nome": "Gravar CST IPI",
        "Valor": "CONFIG_TRIBUT_CSTIPI_GRAVA"
      },
      {
        "Id": 45,
        "IdMod": 3,
        "Modulo": "Configura\u00E7\u00F5es",
        "Submod": "CST IPI",
        "Nome": "Excluir CST IPI",
        "Valor": "CONFIG_TRIBUT_CSTIPI_EXCLUI"
      }
    ],
    [
      {
        "Id": 46,
        "IdMod": 3,
        "Modulo": "Configura\u00E7\u00F5es",
        "Submod": "CST PIS/COFINS",
        "Nome": "Visualizar CST PIS/COFINS",
        "Valor": "CONFIG_TRIBUT_PISCOFINS_LISTA"
      },
      {
        "Id": 47,
        "IdMod": 3,
        "Modulo": "Configura\u00E7\u00F5es",
        "Submod": "CST PIS/COFINS",
        "Nome": "Gravar CST PIS/COFINS",
        "Valor": "CONFIG_TRIBUT_PISCOFINS_GRAVA"
      },
      {
        "Id": 48,
        "IdMod": 3,
        "Modulo": "Configura\u00E7\u00F5es",
        "Submod": "CST PIS/COFINS",
        "Nome": "Excluir CST PIS/COFINS",
        "Valor": "CONFIG_TRIBUT_PISCOFINS_EXCLUI"
      }
    ],
    [
      {
        "Id": 49,
        "IdMod": 3,
        "Modulo": "Configura\u00E7\u00F5es",
        "Submod": "ICMS UF",
        "Nome": "Visualizar ICMS UF",
        "Valor": "CONFIG_TRIBUT_ICMSUF_LISTA"
      },
      {
        "Id": 50,
        "IdMod": 3,
        "Modulo": "Configura\u00E7\u00F5es",
        "Submod": "ICMS UF",
        "Nome": "Gravra ICMS UF",
        "Valor": "CONFIG_TRIBUT_ICMSUF_GRAVA"
      },
      {
        "Id": 51,
        "IdMod": 3,
        "Modulo": "Configura\u00E7\u00F5es",
        "Submod": "ICMS UF",
        "Nome": "Excluir ICMS UF",
        "Valor": "CONFIG_TRIBUT_ICMSUF_EXCLUI"
      }
    ],
    [
      {
        "Id": 52,
        "IdMod": 3,
        "Modulo": "Configura\u00E7\u00F5es",
        "Submod": "ORIGENS",
        "Nome": "Visualizar ORIGENS",
        "Valor": "CONFIG_TRIBUT_ORIGENS_LISTA"
      },
      {
        "Id": 53,
        "IdMod": 3,
        "Modulo": "Configura\u00E7\u00F5es",
        "Submod": "ORIGENS",
        "Nome": "Gravar ORIGENS",
        "Valor": "CONFIG_TRIBUT_ORIGENS_GRAVA"
      },
      {
        "Id": 54,
        "IdMod": 3,
        "Modulo": "Configura\u00E7\u00F5es",
        "Submod": "ORIGENS",
        "Nome": "Excluir ORIGENS",
        "Valor": "CONFIG_TRIBUT_ORIGENS_EXCLUI"
      }
    ],
    [
      {
        "Id": 55,
        "IdMod": 3,
        "Modulo": "Configura\u00E7\u00F5es",
        "Submod": "FORMA PAG.",
        "Nome": "Visualizar FORMA PAG.",
        "Valor": "CONFIG_TRIBUT_FORMAPAG_LISTA"
      },
      {
        "Id": 56,
        "IdMod": 3,
        "Modulo": "Configura\u00E7\u00F5es",
        "Submod": "FORMA PAG.",
        "Nome": "Gravar FORMA PAG.",
        "Valor": "CONFIG_TRIBUT_FORMAPAG_GRAVA"
      },
      {
        "Id": 57,
        "IdMod": 3,
        "Modulo": "Configura\u00E7\u00F5es",
        "Submod": "FORMA PAG.",
        "Nome": "Excluir FORMA PAG.",
        "Valor": "CONFIG_TRIBUT_FORMAPAG_EXCLUI"
      }
    ],
    [
      {
        "Id": 58,
        "IdMod": 3,
        "Modulo": "Configura\u00E7\u00F5es",
        "Submod": "Integra\u00E7\u00E3o Fiscal",
        "Nome": "Visualizar Integra\u00E7\u00E3o Fiscal",
        "Valor": "CONFIG_TRIBUT_INTF_LISTA"
      },
      {
        "Id": 59,
        "IdMod": 3,
        "Modulo": "Configura\u00E7\u00F5es",
        "Submod": "Integra\u00E7\u00E3o Fiscal",
        "Nome": "Gravar Integra\u00E7\u00E3o Fiscal",
        "Valor": "CONFIG_TRIBUT_INTF_GRAVA"
      },
      {
        "Id": 60,
        "IdMod": 3,
        "Modulo": "Configura\u00E7\u00F5es",
        "Submod": "Integra\u00E7\u00E3o Fiscal",
        "Nome": "Excluir Integra\u00E7\u00E3o Fiscal",
        "Valor": "CONFIG_TRIBUT_INTF_EXCLUI"
      }
    ]
  ],
  [
    [
      {
        "Id": 67,
        "IdMod": 4,
        "Modulo": "Empresa",
        "Submod": "Lojas",
        "Nome": "Visualizar Lojas",
        "Valor": "EMPRESA_LOJAS_LISTA"
      },
      {
        "Id": 68,
        "IdMod": 4,
        "Modulo": "Empresa",
        "Submod": "Lojas",
        "Nome": "Gravar Lojas",
        "Valor": "EMPRESA_LOJAS_GRAVA"
      },
      {
        "Id": 69,
        "IdMod": 4,
        "Modulo": "Empresa",
        "Submod": "Lojas",
        "Nome": "Excluir Lojas",
        "Valor": "EMPRESA_LOJAS_EXCLUI"
      }
    ],
    [
      {
        "Id": 70,
        "IdMod": 4,
        "Modulo": "Empresa",
        "Submod": "Depositos",
        "Nome": "Visualizar Depositos",
        "Valor": "EMPRESA_DEP_LISTA"
      },
      {
        "Id": 71,
        "IdMod": 4,
        "Modulo": "Empresa",
        "Submod": "Depositos",
        "Nome": "Gravar Depositos",
        "Valor": "EMPRESA_DEP_GRAVA"
      },
      {
        "Id": 72,
        "IdMod": 4,
        "Modulo": "Empresa",
        "Submod": "Depositos",
        "Nome": "Excluir Depositos",
        "Valor": "EMPRESA_DEP_EXCLUI"
      }
    ]
  ]
]
var queryNestedDictionaries = queryNestedGroups.ToDictionary(g => g.Key, 
    v => v.Values.ToDictionary(gg => gg.Key, gg => gg.Values));