我的MVC控制器如何生成以下格式的JSON?

我的MVC控制器如何生成以下格式的JSON?,json,asp.net-mvc-4,controller,jquery-validation-engine,Json,Asp.net Mvc 4,Controller,Jquery Validation Engine,我正在尝试与我的MVC项目集成以执行内联验证。我在jQuery表单中有一个字段,它正在调用MVC控制器,并需要JSON响应。根据插件作者写的 现在,这将把ajax中的字段发送到定义的url,并等待 响应,响应需要是一个用json编码的数组 遵循以下语法:[“id1”,布尔状态] 所以在php中可以这样做:echo json_encode($arrayToJs) 如何在ASP.NET MVC4中实现这一点 我当前的控制器看起来像这样 public JsonResult FunctionName(s

我正在尝试与我的MVC项目集成以执行内联验证。我在jQuery表单中有一个字段,它正在调用MVC控制器,并需要JSON响应。根据插件作者写的

现在,这将把ajax中的字段发送到定义的url,并等待 响应,响应需要是一个用json编码的数组 遵循以下语法:[“id1”,布尔状态]

所以在php中可以这样做:echo json_encode($arrayToJs)

如何在ASP.NET MVC4中实现这一点

我当前的控制器看起来像这样

public JsonResult FunctionName(string fieldValue)
{
        return Json((new { foo = "bar", baz = "Blech" }), JsonRequestBehavior.AllowGet);
}
响应主体显示它返回如下所示的键值对

{"foo":"bar","baz":"Blech"}

如何以预期的格式返回JSON?

如果您希望返回JSON中的数组,我想您可以这样做。然后你可以归还一本字典。由于传入的匿名类型,现在在json输出中看不到数组是两个键值

public JsonResult MyMethodName(string name)
{
    IDictionary<string, bool> myDict = LoadDictionaryFromSomewhere();
    return Json(myDict, JsonRequestBehaviour.AllowGet);
}
公共JsonResult MyMethodName(字符串名称) { IDictionary myDict=LoadDictionaryFromSomewhere(); 返回Json(myDict,jsonRequestBehavior.AllowGet); }
方括号表示JSON对象中的数组

见本文:

此测试代码:

return Json(new object[] { "id1", false }, JsonRequestBehavior.AllowGet);
应返回:

["id1",false]

[“id1”,布尔状态]
不是有效的JSON<代码>[“id1”,“布尔状态”]将是有效的JSON。不清楚您希望
{“foo”:“bar”,“baz”:“Blech”}
是什么样子。为了澄清,您在顶部显示的是一个JSON数组(无效数组)。下面显示的是一个JSON对象。无效的JSON格式直接引用自文章。根据文章,我需要控制器返回一个数组。您可以在JSON数组中混合类型,但布尔状态是两个字。即使其中一个或两个是某种类型的值,json数组元素也不能由两个元素组成,在本例中为布尔值和状态。例如,如果booleanStatus是一个带有布尔值的变量,那么它将是一个有效的JSON数组元素。因此,无论是否引用文章中的内容,它都是无效的JSON。很明显,文章作者使用了无效的语法。他应该简单地将“布尔状态”替换为true或false。Rob下面的回答从我的控制器创建了相应的响应。我确实希望返回一个JSON数组。我不想从另一个源加载字典。@user2048857这就是字典将变成的Json数组,所以您将返回一个Json数组。它还将输出有效的json,不像您的exampleWell,这很好。可惜这没用。而且,公平地说,如果你表现出一点主动性,你就会看到这一点;)工作得很有魅力!谢谢你,罗布!