Mar*_*rko 5 c# linq serialization json
嘿伙计们,希望你们在假期里都有一个好的休息时间.
我创建了一个WebService,它使用LINQ/JavaScriptSerializer将这些城市中的城市和公司列表作为JSON字符串返回.
我的代码粗略
var data = from c in db.Companies
group c by c.City into cities
select new
{
city = cities.Key,
companies = from company in cities
select company.Name
};
JavaScriptSerializer jss = new JavaScriptSerializer();
return jss.Serialize(data);
Run Code Online (Sandbox Code Playgroud)
这会产生以下JSON字符串
[
{"city":"Auckland","companies":["Company1","Company2"]},
{"city":"Wellington","companies":["Company3","Company4","Company5"]}
]
Run Code Online (Sandbox Code Playgroud)
但是,我想让城市成为关键,所以我可以轻松地搜索它
例如
[
"Auckland" : {"companies":["Company1","Company2"]},
"Wellington" : {"companies":["Company3","Company4","Company5"]}
]
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
只是一个想法......试试
var data = db.Companies
.GroupBy(c => c.City)
.ToDictionary(g => g.Key,
g => new { companies = g.Select(c => c.Name) });
Run Code Online (Sandbox Code Playgroud)
因此,这将构建一个Dictionary<string, xxx>where xxx是具有单个属性的匿名类型,"公司"是一系列公司名称.