4

我有一个 IEnumerable 日期/值对列表,我将其作为 Json 列表返回以进行浮动。但是,当我调用 JsonResult() 时,结果如下所示:

[{"Date":date1, "Value":value1}, {"Date":date2, "Value":value2}...]

弗洛特期待

[[date1, value1], [date2, value2]...]

有什么简单的方法可以让 MVC 框架输出这样的对象,还是我需要编写自己的序列化程序 / StringBuffer 代码?就此而言,我什至不需要输出字段名称,只需输出值本身。

4

3 回答 3

5

这些日期/值对是类型System.Web.UI.Pair吗?如果是这样,您可以这样做;

return Json(yourIEnumerable.Select(x => new[] { x.First, x.Second }).ToArray());

它以您希望的方式返回;

[["\/Date(1255686550232)\/","foo"],["\/Date(1255686550232)\/","bar"]]

即使他们不是类型的System.Web.UI.Pair,我相信你明白了。

于 2009-10-16T09:50:51.967 回答
1

最好的办法是自己编写,但这是一个微不足道的练习。

在我看来,当你可以花 10 分钟自己进行序列化时,是否值得花几个小时寻找一种方法。

于 2009-10-15T16:55:48.697 回答
1

听起来你只需要返回一个这样的字符串:

var builder = new StringBuilder();
builder.Append("[");
foreach (var item in listOfDateTimes)
    builder.AppendFormat("[{0}, {1}], ", item.Key, item.Value);
var result = builder.ToString().TrimEnd(new char[]{',',' '}) + "]";
return result;
于 2009-10-15T16:56:12.300 回答