我觉得对此有一个简单的答案,但是在将我的 JSON 数据返回到 JQuery UI 自动完成功能时遇到了问题。我正在使用“标签”和“值”字段,所以我可以存储一个 id 字段。问题是一旦将对象中的值传递回 JQuery 函数,我就无法解析它们。
在 ASP.NET C# 中,我有一个对象:
public class AutoCompleteItem
{
public string label { get; set; }
public string value { get; set; }
}
并将它们设置为列表,格式化为 JSON,然后返回:
List<AutoCompleteItem> autoCompleteItems = new List<AutoCompleteItem>();
// Loop through data, add objects to list
var oSerializer = new JavaScriptSerializer();
string sJSON = oSerializer.Serialize(autoCompleteItems);
return sJSON;
传递给 JQuery 后的 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
}
}));
},
我注意到在使用“标签”、“值”格式之前,我只使用了一个 IList 字符串。传递的数据在外面没有引号,而我原来的例子有
["Steve", "Joe", "Rick"]
我不知道这是否与问题有关,但我尝试了很多方法都无济于事。任何帮助表示赞赏!