c# - 将 C# 列表转换为 JSON 特定格式

标签 c# asp.net json asp.net-mvc

我的 View 中有一个图表,如下所示:

  var hourlyGraph = Morris.Bar({
            element: 'graph_bar',
            data: [
               @foreach (var item in ViewBag.HourlyGraph)
               {
                @:{device: '@item.Hour.ToString("D2"):00', geekbench:@item.Sales },
               }
            ],
            xkey: 'device',
            ykeys: ['geekbench'],
            labels: ['Sold'],
            barRatio: 0.4,
            barColors: ['#0A4D70', '#34495E', '#ACADAC', '#3498DB'],
            xLabelAngle: 35,
            hideHover: 'auto',
            resize: true
      });

这是莫里斯图。请注意此处的数据设置方式:

[
@foreach (var item in ViewBag.HourlyGraph)
{
@:{device: '@item.Hour.ToString("D2"):00', geekbench:@item.Sales },
}
]

现在我需要用新数据填充图表。在我的 Action 中,我创建了一个包含 2 个属性的列表:

public int Hour {get;set;}
public int Sales {get;set;}

它们被存储在一个列表中,类型为:

var HourlyGraph = new List<HourlyGraph>();

现在我想将此列表转换为 JSON 格式,如下所示:

[
{device: '0', geekbench:5 },
{device: '1', geekbench:13 },
{device: '2', geekbench:25 },
{device: '3', geekbench:14 },
{device: '4', geekbench:16 },
]

设备的值(value) = 小时,而 geekbench = 销售额 ...

我如何在 C# 中执行此操作?

最佳答案

使用 Json.Net 和 Linq 很容易:

string myJson = 
   JsonConvert.SerializeObject(mylist.Select(item=>
                                  new {device=item.Hour, geekbench=item.Sales}));

您使用所需的字段和名称转换一个匿名类型,然后让 Newtonsoft.Json 完成其余的工作。

关于c# - 将 C# 列表转换为 JSON 特定格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42788237/

相关文章:

angularjs - OrderCloud.io API XP 大小限制

asp.net - 在 IIS 7 中部署 ASP.NET Web 应用程序和 WCF 服务时应遵循哪些最佳实践?

java - 使用 GSON 将 JSON 数据解析为数组时出错

c# - WPF 控件的嵌套属性的数据绑定(bind)

c# - using 语句外的 SQL 连接构造函数

c# - 使用 Identity 2.0 数据库对 ASP.NET Core 1.0 应用程序进行身份验证

asp.net - 哪些工具适合设计 ASP.NET 用户界面以显示给客户端?

android - 如何从我的位置在 Google Maps API V2 中绘制路线

c# - c#的无锁哈希表

javascript - 是否可以将 MVC C# List<int> 转换为 javascript 数组?