我有一種感覺,這有一個簡單的答案,但我在將JSON數據返回給JQuery UI自動完成功能時遇到問題。我正在使用「標籤」和「值」字段,以便可以存儲ID字段。問題是我無法解析對象中的值,一旦它們傳回給JQuery函數。解析Jquery UI中的JSON對象自動完成
在ASP.NET C#,我有一個對象:
public class AutoCompleteItem
{
public string label { get; set; }
public string value { get; set; }
}
,並設定他們到一個列表,格式爲JSON,然後返回:傳遞給JQuery的後
List<AutoCompleteItem> autoCompleteItems = new List<AutoCompleteItem>();
// Loop through data, add objects to list
var oSerializer = new JavaScriptSerializer();
string sJSON = oSerializer.Serialize(autoCompleteItems);
return sJSON;
JSON數據:
"[{"label":"Steve","value":"ID4545"},{"label":"Joe","value":"ID1212"},{"label":"Rick","value":"ID6767"}]"
這是我用來試圖從JSON獲取數據的函數:
success: function (data) {
response($.map(data.d, function (item) {
return {
label: item.label,
value: item.value
}
}));
},
我注意到在我使用'label','value'格式之前,我只使用了IList字符串。通過沒有在外面的報價,而我原來的示例中的數據確實
["Steve", "Joe", "Rick"]
我不知道這是相關的問題或沒有,但我已經嘗試了許多事情都無濟於事。任何幫助表示讚賞!
查看data.d是否正確。你需要在jquery響應中轉換數據? – Jones 2012-04-12 19:08:48
你爲什麼試圖將data.d映射到包含完全相同結構的對象的數組?不應該使用data.d直接相同? (或者你想保留原始的響應嗎?)。此外,您正在使用data.d,但在您之前顯示的JSON數據中沒有看到任何「d」屬性。也許如果你直接使用數據? – 2012-04-12 19:10:21
我相信'd'是.NET獨有的東西,它容納了我的對象。 – Drew 2012-04-12 19:11:39