我有一种感觉,这有一个简单的答案,但我在将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