gpt4 book ai didi

c# - 使用 LINQ/JavaScriptSerializer 创建 JSON 对象而不是数组

转载 作者:太空狗 更新时间:2023-10-29 22:55:17 24 4
gpt4 key购买 nike

大家好,希望你们假期都过得愉快。

我创建了一个 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);

生成以下 JSON 字符串

[
{"city":"Auckland","companies":["Company1","Company2"]},
{"city":"Wellington","companies":["Company3","Company4","Company5"]}
]

不过我想把城市作为关键字,这样我就可以很容易地通过它进行搜索

例如

[
"Auckland" : {"companies":["Company1","Company2"]},
"Wellington" : {"companies":["Company3","Company4","Company5"]}
]

有什么想法吗?

最佳答案

只是一个想法……试试

var data = db.Companies
.GroupBy(c => c.City)
.ToDictionary(g => g.Key,
g => new { companies = g.Select(c => c.Name) });

所以这将构建一个 Dictionary<string, xxx>其中 xxx是具有单个属性的匿名类型,“companies”是公司名称的序列。

关于c# - 使用 LINQ/JavaScriptSerializer 创建 JSON 对象而不是数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4773151/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com