【发布时间】:2013-03-07 18:09:15
【问题描述】:
我有一个 .NET 字典,其中包含实体框架中 SQL 函数中的项目。这是我将项目添加到字典的代码:
public FooViewModel GetFoo()
{
var fooresults = new FooResultsViewModel();
using (var db = new DBEntities())
{
var results = db.FunctionResults().ToList();
foreach (var d in results)
{
foo.a.Add(d.ColumnName, d.ColumnValue);
}
}
return fooresults;
这是我的模型:
public class FooViewModel : GraphViewModel
{
public FooResultsViewModel() { }
public Dictionary<string, decimal> a = new Dictionary<string, decimal>();
}
最后是我的控制器:
public virtual JsonResult GetData()
{
var fooresults = new FactSurveryResultsQueries().GetAverages();
return new JsonResult { JsonRequestBehavior = JsonRequestBehavior.AllowGet, Data = fooresults };
}
这是返回的 JSON:
{"a":
{"FooResult1":3.579831,
"FooResult2":3.359243,
"FooResult3":3.720588,
"FooResult4":3.636554,
"FooResult5":3.285714,
"FooResult6":3.758403,
"FooResult7":3.262605}}
但是我正在寻找返回如下的东西:
{"a":
{ColumnName:"FooResult1",
ColumnValue:3.579831,
ColumnName:"FooResult2",
ColumnValue:3.359243,
ColumnName:"FooResult3",
ColumnValue:3.720588,
ColumnName:"FooResult4",
ColumnValue:3.636554,
ColumnName:"FooResult5",
ColumnValue:3.285714,
ColumnName:"FooResult6",
ColumnValue:3.758403,
ColumnName:"FooResult7",
ColumnValue:3.262605}}
有没有办法为第二个结果格式化 JSON 输出?
【问题讨论】:
-
仅供参考,这是一个 .NET 字典,而不是 C# 字典。
-
这样格式化的 JSON 有什么用?你想要一个对象数组,比如
{ ColumnName: "FooResult", ColumnValue: 3.123 } -
您当前预期的 JSON 结果无效,因为字段名称重复。
-
我想要这种格式的 JSON 的原因是我通过 AJAX 调用来使用它,然后以可视方式呈现它。为此,我需要为可视化脚本确定要绘制的值是什么,以及要沿轴放置的类别(名称)是什么。我希望这会有所帮助。
-
感谢您的澄清,我只在 .NET 堆栈上待了很短时间,我会记得将它们分开。
标签: c# .net json asp.net-mvc-4