2013-02-19 41 views
-1

我正在嘗試將jQuery validation engine與我的MVC項目集成以執行內聯驗證。我有一個內部調用MVC控制器的jQuery表單中的字段,並期望JSON響應。據this article通過插件的作者寫...我的MVC控制器如何以下列格式生成JSON?

現在,這將在阿賈克斯發送現場定義的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?

+0

'[ 「ID1」,布爾狀態]'是不是有效的JSON。 '[「id1」,「布爾狀態」]'是有效的JSON。目前還不清楚你想要什麼「{」foo「:」bar「,」baz「:」Blech「}。 – Pete 2013-02-19 16:39:42

+0

爲了澄清,你在頂部顯示的是一個JSON數組(一個無效數組)。你在底部顯示的是一個JSON對象。 – Pete 2013-02-19 16:42:02

+0

無效的JSON格式直接從文章引用。根據文章,我需要控制器返回一個數組。 – 2013-02-19 17:10:23

回答

2

方括號表示JSON對象內的數組。

看到這篇文章:http://www.w3schools.com/json/json_syntax.asp

這個測試代碼:

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

應該返回:

["id1",false] 
+0

工作就像一個魅力!感謝Rob! – 2013-02-19 17:58:19

+0

很高興能幫到你! – Rob 2013-02-19 17:58:55

0

如果你想在json中返回一個數組,我認爲你應該這樣做。然後你可以返回一個字典。現在由於您傳入的匿名類型,您在json輸出中沒有看到數組,這是兩個關鍵值。

public JsonResult MyMethodName(string name) 
{ 
    IDictionary<string, bool> myDict = LoadDictionaryFromSomewhere(); 
    return Json(myDict, JsonRequestBehaviour.AllowGet); 
} 
+0

我確實想返回一個JSON數組。我不想從其他來源加載字典。 – 2013-02-19 17:13:58

+0

@ user2048857這就是多麼一個字典將成爲一個Json數組,所以你將返回一個JSON數組。它也會輸出有效的json,與你的例子不同 – gdp 2013-02-19 17:50:11

+0

那很好。太糟糕了,這沒有幫助。另外*你是 – 2013-02-20 13:56:08

相關問題