如何在ASP.net MVC 5中返回整数列表作为JSON对象

时间:2017-05-01 18:12:08

标签: c# asp.net json asp.net-mvc asp.net-mvc-5

我正在学习ASP.Net MVC5。我有一个案例,我需要返回一个JSON结果。目前,我有整数列表。但我想将它作为json对象返回。以下是我的内容

    [HttpGet]
    public ActionResult hello()
    {
        var x = SMS_DAL._DalColl.lstOfID;
        return Json(x, JsonRequestBehavior.AllowGet);
    }

观察:变量x包含list of integer。我想将其作为JSON对象返回。以下是VS调试期间x的样子。

X    Count = 3
  [0]   -1
  [1]    2134....
  [2]    28463

我研究过JSON,它包含如下所示的键值对:

{
    "id": 1,
    "name": "A green door",
    "price": 12.50,
}

因此,我运行了控制器操作并检查了Advanced Rest Client中的值。

enter image description here

我们可以清楚地看到我得到的价值如下所示

[Array[3]

0: -1

1: 2134...

2: 2843

]

"双引号" "花括号"代表关键和价值观。为什么我不明白他们。我得到的结果是他们实际上是JSON?请指导我。

2 个答案:

答案 0 :(得分:1)

无论你进入列表中的内容,都可以将其作为Json返回。 您的代码应该是这样的:

public ActionResult GetNewChatPosts()
{   
    List integerList = new List<int>();
    return Json(list);
}

答案 1 :(得分:0)

您的操作是返回一个数组,这是正确的JSON对象。基本上,任何数组都是JSON对象,如果它包含适当的值 - 字符串,数字,对象,数组,布尔值或null。 快速阅读:https://www.w3schools.com/js/js_json_arrays.asp

如果需要数组的键,请返回JSON格式的对象:

public class TestAPIController : Controller
{
    [HttpGet]
    public ActionResult Data()
    {
        return Json(new ArrayResult { Arr = new int[] { 1, 2, 3 } });
    }
}

public class ArrayResult
{
    public int[] Arr { get; set; }
}

这将返回:

{arr: [1,2,3]}