如何在Json响应中包含数组名称?

时间:2011-09-09 13:47:02

标签: jquery asp.net-mvc json

在我的控制器中,我有以下代码,可以在命中特定URL时生成Json响应。

    public JsonResult LatLng()
    {
        var zones = zoneRepository.GetCoordinates().ToList();

        return Json(zones, JsonRequestBehavior.AllowGet);
    }

输出看起来像这样。

[{"Zip_Code":1001,"City":"Agawam","DMA":"SPRINGFIELD, MA"},...

我的问题如下。 Json数组前面不应该有一个数组名吗?例如:

{"zones":[{"Zip_Code":...

当我使用Jquery解析它时,我需要使用$ .each(json.zones)的内容,所以我想知道如何在Jason响应中包含数组名称。谢谢!

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

来自json.org的这个例子可能有助于澄清......

{"menu": {
  "id": "file",
  "value": "File",
  "popup": {
    "menuitem": [
      {"value": "New", "onclick": "CreateNewDoc()"},
      {"value": "Open", "onclick": "OpenDoc()"},
      {"value": "Close", "onclick": "CloseDoc()"}
    ]
  }
}}

以这个例子为出发点,我想你会这样做(想象区域是不同的!):

{"zones": [
      {"Zip-Code": "1001", "City": "Agawam", "DMA": "SPRINGFIELD, MA"},
      {"Zip-Code": "1001", "City": "Agawam", "DMA": "SPRINGFIELD, MA"},
      {"Zip-Code": "1001", "City": "Agawam", "DMA": "SPRINGFIELD, MA"}
    ]
}

答案 2 :(得分:0)

 JSONObject title = new JSONObject();
 JSONObject main = new JSONObject();

title.put("zone", main);
main.put("Zip Code", value);
main.put("City", value);
........