我在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与此类似?
答案 0 :(得分:0)
它向我指出了正确的方向,简短的回答是一个带有字符串的字典,其中一把钥匙让我大部分都在那里......我只是想在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。