How can I make JsonResult return an array of arrays (without field names) rather than an array of objects?

笑着哭i 提交于 2020-02-22 04:06:48

问题


I have an IEnumerable list of date/value pairs that I am returning as a Json list to flot. However, when I call JsonResult(), the result looks like this:

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

Flot is expecting

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

Is there any simple way to get the MVC framework to output objects like this or do I need to write my own seralizer / StringBuffer code? For that matter I don't even need to output the field names, just the values themselves.


回答1:


It sounds like you just need to return a string like this:

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:


Are these date/value pairs type of System.Web.UI.Pair? If so, you can do this ;

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

It returns the way you want it to be ;

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

Even if they're not type of System.Web.UI.Pair, I'm sure you get the idea.




回答3:


Your best bet is to write it yourself, but it is a trivial exercise to do.

In my mind, is it worth spending on hour looking for a way to do it, when you can spend 10 minutes and just do the serialization yourself.



来源:https://stackoverflow.com/questions/1573643/how-can-i-make-jsonresult-return-an-array-of-arrays-without-field-names-rather

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!