将JsonResult与jQuery一起使用
我需要为jQuery插件返回一个Json 它需要是这样的:将JsonResult与jQuery一起使用,jquery,asp.net-mvc,json,model-view-controller,Jquery,Asp.net Mvc,Json,Model View Controller,我需要为jQuery插件返回一个Json 它需要是这样的:[{“name”:“Testing”,“desc”:“OB-2014-0202”,“values”:[{“Status”:2,“from”:“\/Date(1391295600000)\/”,“to”:“\/Date(1392505200000)\/”,“customClass”:null,“label”:“请勿删除”}], 但是JsonResult返回 [{ "name": "DO NOT DELETE", "desc": "OB-20
[{“name”:“Testing”,“desc”:“OB-2014-0202”,“values”:[{“Status”:2,“from”:“\/Date(1391295600000)\/”,“to”:“\/Date(1392505200000)\/”,“customClass”:null,“label”:“请勿删除”}],
但是JsonResult返回
[{ "name": "DO NOT DELETE", "desc": "OB-2014-0202", "values": { "Status": 2, "from": "\/Date(1391295600000)\/", "to": "\/Date(1392505200000)\/", "customClass": null, "label": "DO NOT DELETE" } }],
请注意,“values”节点缺少[]
以下是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
}
你知道我如何用[]获取Json值吗?(或者使用jQuery使其在没有[]的情况下工作)
Thanx很多试试看
values = new List<JsonOrderGanttValues> { new JsonOrderGanttValues(order) };
values=newlist{newjsonorderganttvalues(order)};
使用jquery遍历如下树
var obj = [{ "name": "DO NOT DELETE", "desc": "OB-2014-0202", "values": { "Status": 2, "from": "\/Date(1391295600000)\/", "to": "\/Date(1392505200000)\/", "customClass": null, "label": "DO NOT DELETE" } }];
console.log(obj[0].name);
console.log(obj[0].desc);
console.log(obj[0].values);
console.log(obj[0].values.Status);
console.log(obj[0].values.from);
console.log(obj[0].values.customClass);
按照现在的方式,值是一个对象。为了拥有[],需要将值设置为数组
var obj = [{ "name": "DO NOT DELETE", "desc": "OB-2014-0202", "values": { "Status": 2, "from": "\/Date(1391295600000)\/", "to": "\/Date(1392505200000)\/", "customClass": null, "label": "DO NOT DELETE" } }];
console.log(obj[0].name);
console.log(obj[0].desc);
console.log(obj[0].values);
console.log(obj[0].values.Status);
console.log(obj[0].values.from);
console.log(obj[0].values.customClass);