繁体   English   中英

如何将C#中匿名类型的IEnumerable序列化为JavaScript Object?

[英]How to serialize IEnumerable of Anonymous Type in C# to JavaScript Object?

在我的 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。

我想做的是将此数据序列化为 JavaScript Object,其中 id 作为索引,每个 object 的索引引用的字段名称和年龄。

我怎样才能做到这一点。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM