将linq结果转换为JSON

时间:2018-06-14 17:23:54

标签: c# json linq

我试图将此linq查询结果转换为JSON数据,我设法这样做:

 List<FormDataEndPoint> formularioEndpoint = query.AsEnumerable()                 
                  .SelectMany(m => m.MarcacaoFormulario                  
                  .Select(f => new FormDataEndPoint
                  {
                     formData = JsonConvert.SerializeObject(f.MarcacaoFormularioCampo.Select(mfc => new
                     {
                        key = mfc.nomeCampo,
                        value = mfc.valorCampo                        
                     }).ToList()),
                     formCode = f.Formulario.codIdentificacao,
                     serviceConnector = f.Formulario.EntidadeDestinoFormulario.ServiceConnector,                     
                     postDate = DateTime.Now,
                     service = f.Formulario.FormularioServicoLocal.Select(fsl => fsl.Servico).FirstOrDefault().nome,
                     entity = f.Marcacao.EntidadeLocal.Entidade.nome,
                     location = f.Marcacao.EntidadeLocal.Local.nome,
                     files = f.MarcacaoFormularioArquivo
                              .Select(fma => new FormDataFile
                              {
                                 base64File = fma.base64File,
                                 nomeArquivo = fma.nome,
                                 extensao = fma.nome
                              }).ToList()
                  }))
                   .Where(formData => formData.serviceConnector != null)
                  .ToList();

这是我实际将数据转换为Json

的地方
formData = JsonConvert.SerializeObject(f.MarcacaoFormularioCampo.Select(mfc => new
{
    key = mfc.nomeCampo,
    value = mfc.valorCampo                        
}).ToList())

问题是,这个方法给了json像:

[{key: 'name', value: 'John'}, {key: 'Country', value: 'USA'}]

当然这些&#34;关键&#34;和&#34;价值&#34;我只是为匿名对象中的属性选择的名称,它可以是任何名称。 但我真正需要的是是一个经典的键值对json,比如

{'name': 'John', 'country':'USA'}

但是我不确定我是否可以通过在linq上做一些不同的事情来获得它,或者我以后应该获取json数据并转换为看起来像     我需要的格式。

0 个答案:

没有答案