从“数据”返回JSON数据

时间:2016-08-02 12:57:26

标签: javascript c# json asp.net-mvc datatables

我需要使用我的数据库数据填充jQuery数据表,但是很难这样做。在网上搜索,我相信我找到了原因,这是我的控制器返回的json格式。格式应如下:

{
  "data": [
    {
      "ID": "1",
      "CODIGO": "CC0050",
      "TEXTO": "USINAGEM"
    },
    {
      "ID": "2",
      "CODIGO": "CC0100",
      "TEXTO": "MONTAGEM"
    }]
}

但是会以这种格式返回:

[
 {
  "ID":24,
  "CODIGO":"CC0050",
  "TEXTO":"USINAGEM"
 },
 {
  "ID":25,
  "CODIGO":"CC0100",
  "TEXTO":"MONTAGEM"
 }
]

这是控制器代码:

[HttpGet]
    public JsonResult GetAllCECOS()
    {
        using (RPIEntities contextObj = new RPIEntities())
        {
            try
            {
                var listaCECOS = contextObj.T0CECOS.ToList();
                return Json(listaCECOS, JsonRequestBehavior.AllowGet);
            }
            catch (Exception ex)
            {

                throw ex;
            }
        }
    }

2 个答案:

答案 0 :(得分:1)

全心全意,

我改变了JsonResult方法的回报:

[HttpGet]
public JsonResult GetAllCECOS()
{
    using (RPIEntities contextObj = new RPIEntities())
    {
        try
        {
            var listaCECOS = contextObj.T0CECOS.ToList();
            **return Json(listaCECOS, JsonRequestBehavior.AllowGet);**
        }
        catch (Exception ex)
        {

            throw ex;
        }
    }
}

到此:

return Json(new { data = listaCECOS }, JsonRequestBehavior.AllowGet);

答案 1 :(得分:0)

原因是您正在返回对象列表,它是实际使用JSON解析的列表。

在这种情况下,您希望返回具有“data”属性的对象。它可以是一个命名类:

public class MyReturningObject
{
    public IEnumerable<T0CECOS> data { get; set; }
}

或匿名对象:

return new { data = listaCECOS, JsonRequestBehavior.AllowGet };

在此对象中添加列表,并使用JSON解析实际等待的JSON!

{
  "data": [
    {
      "ID": "1",
      "CODIGO": "CC0050",
      "TEXTO": "USINAGEM"
    },
    {
      "ID": "2",
      "CODIGO": "CC0100",
      "TEXTO": "MONTAGEM"
    }]
}