从c#中的字典键中形成json

时间:2017-05-03 14:01:41

标签: c# json linq dictionary

我在c#中有这个代码,它按日期给我一个我的数据字典,除非将密钥序列化为json,否则它的工作方式很完美。 json最终只是类的toString()属性,而不是我期望的属性名和值。每个键的集合中的项目序列化很好。这是我的代码:

  list = m
  .GroupBy(x => new StatCallDateModel { DateText = x.DateText })
  .ToDictionary(x => x.Key, x => x.ToList()
  .ConvertAll(c => (object)new { Agent = c.Agent, Talk = c.Talk }));
   return list;

我注意到的一件事是当我将日期对象添加到密钥下的集合时,json解析得很好。事实上,它是字典中的一个键,使其像这样解析。我正在使用此代码为d3图表形成json;所以格式很重要。

有没有办法解决这个问题,还是可以在没有字典的情况下让json与此类似?

1 个答案:

答案 0 :(得分:0)

JodaTime's javadoc

它向我指出了正确的方向,简短的回答是一个带有字符串的字典,其中一把钥匙让我大部分都在那里......我只是想在d3中使用该键作为脚本中的属性。< / p>

 List<object> ops = m.GroupBy(x => x.Agent).ToList()
 .ConvertAll(c => (object)new { Agent = c.First().Agent});
  list = m
 .GroupBy(x => string.Format(@"""DateText"": {0}", x.DateText ))
 .ToDictionary(x => x.Key, x => x.ToList()
 .ConvertAll(c => (object)new { Datetext = c.DateText,  Agent = c.Agent, 
  Talk = c.Talk  })));
  list.Add("keys", ops);

因此,此代码由日期字符串键入,并在字典的最后一个键中包含代理的键。根本没有改变sql。