代码之家  ›  专栏  ›  技术社区  ›  Jedidja

如何使jsonResult返回数组(不带字段名)而不是对象数组?

  •  4
  • Jedidja  · 技术社区  · 15 年前

    我有一个日期/值对的IEnumerable列表,作为JSON列表返回到Flot。但是,当我调用jsonResult()时,结果如下:

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

    Flot正在等待

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

    有没有任何简单的方法可以让MVC框架输出这样的对象,或者我需要编写自己的seralizer/stringbuffer代码?为此,我甚至不需要输出字段名,只需要输出值本身。

    3 回复  |  直到 15 年前
        1
  •  1
  •   Joseph    15 年前

    听起来您只需要返回这样的字符串:

    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;
    
        2
  •  5
  •   Çağdaş Tekin    15 年前

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

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

    它会回到你想要的样子;

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

    即使他们不是那种 system.web.ui.对 我相信你会明白的。

        3
  •  1
  •   James Black    15 年前

    你最好是自己写,但这只是一个微不足道的练习。

    在我看来,花上一个小时去寻找一种方法值得吗,当你可以花10分钟来自己做系列化的时候。