【发布时间】:2014-04-23 02:04:50
【问题描述】:
我需要为 jQuery 插件返回一个 Json。
必须是这样的:[{ "name": "Testing", "desc": "OB-2014-0202", "values": [{ "Status": 2, "from": "\/Date(1391295600000)\/", "to": "\/Date(1392505200000)\/", "customClass": null, "label": "DO NOT DELETE" }] }],
但是JsonResult返回
[{ "name": "DO NOT DELETE", "desc": "OB-2014-0202", "values": { "Status": 2, "from": "\/Date(1391295600000)\/", "to": "\/Date(1392505200000)\/", "customClass": null, "label": "DO NOT DELETE" } }],
注意“值”节点缺少的 []。
Json 的生成方式如下:
public class JsonOrdersGantt
{
#region Constructors
public JsonOrdersGantt(IEnumerable<Order> listOrders)
{
Orders = new List<JsonOrderGantt>();
foreach (var order in listOrders)
{
Orders.Add(new JsonOrderGantt(order));
}
}
#endregion
#region Properties
public List<JsonOrderGantt> Orders { get; set; }
#endregion
}
public class JsonOrderGantt
{
#region Constructors
public JsonOrderGantt(Order order)
{
name = order.ordBrand;
desc = order.ordPO;
values = new JsonOrderGanttValues(order);
}
#endregion
#region Properties
public string name { get; set; }
public string desc { get; set; }
public JsonOrderGanttValues values { get; set; }
#endregion
}
public class JsonOrderGanttValues
{
#region Constructors
public JsonOrderGanttValues(Order order)
{
from = order.ordStartDate;
to = order.ordEndDate;
customClass = order.ordStatus.ToString();
label = order.ordBrand;
}
#endregion
#region Properties
public DateTime? from { get; set; }
public DateTime? to { get; set; }
public string customClass { get; set; } //: "ganttRed"
public string label { get; set; }
#endregion
}
以及函数的调用:
public JsonResult GetGanttOrders()
{
var repository = new OrderRepository();
var models = repository.GetGanttOrdersList();
return Json(new JsonOrdersGantt(models), JsonRequestBehavior.AllowGet);
}
知道如何获取带有 [] 的 Json 作为值吗? (或者使用 jQuery 让它在没有 [] 的情况下工作)
非常感谢
【问题讨论】:
-
你现在拥有它的方式,值是一个对象。为了有 [] 你需要值是一个数组
标签: jquery asp.net-mvc json model-view-controller