1

在我的 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 对象,每个对象由其索引引用,具有字段名称和年龄。

我怎样才能做到这一点。

4

1 回答 1

4

您可以创建一个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

无需显式指定此处使用的匿名类型的属性名称,因为编译器将这些默认设置为用于提供值的属性名称(在这两种情况下都是相同的)。

于 2012-04-06T15:58:54.060 回答