在我的 ASP.net C# 代码中,我有一个 IEnumerable 容器,其中填充了匿名类型的对象(它松散地基于来自 SQL 的数据)。
假设我的代码看起来像这样:
var uics = entities.getData()
.Select(x => new
{
id = x.id
name = x.name
age = x.age
});
return Json(uics); //Serialize JSON in ASP.net MVC 3
这很简单。当我将它序列化为 JavaScript 时,我得到一个对象数组,每个对象都有字段 id、name 和 age。
我想做的是将此数据序列化为一个以 id 作为索引的 JavaScript 对象,每个对象由其索引引用并具有字段名称和年龄。
我怎样才能做到这一点。
最佳答案
您可以创建一个 IDictionary
并将其用作操作的结果:
var uics = entities.getData()
.ToDictionary(x => x.id, x => new { x.name, x.age });
return Json(uics); //Serialize JSON in ASP.net MVC 3
无需为此处使用的匿名类型显式指定属性名称,因为编译器将这些名称默认为用于提供值的属性名称(在这两种情况下都是相同的)。
关于c# - 如何将C#中匿名类型的IEnumerable序列化为JavaScript对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10045855/