【发布时间】:2015-07-01 18:51:35
【问题描述】:
我正在尝试根据 3rd 方应用程序提供的用户名来获得一个简单的自动完成功能。
应用以这种通用格式输出数据:
"{
"UserA":{"IP":"XXX.XXX.XXX.XXX","ConnectTime":"/Date(1435769694510)/","LastAskSource":"","LastAskType":2,"Name":"UserA"},
"UserB":{"IP":"XXX.XXX.XXX.XXX","ConnectTime":"/Date(1435769694510)/","LastAskSource":"","LastAskType":2,"Name":"UserB"},
"UserC":{"IP":"XXX.XXX.XXX.XXX","ConnectTime":"/Date(1435769694510)/","LastAskSource":"","LastAskType":2,"Name":"UserC"}
}"
现在,我想使用下面列出的通用自动完成功能:
$("#chatEntryBox").autocomplete({
source: usersOnline.Name
});
我已经这样定义了数组:
OnlineUsers = data.userinfo;
for (var i in OnlineUsers) {
var user = OnlineUsers[i];
usersOnline = $.map(OnlineUsers, function(el) { return el; })
}
现在,上面的这部分按我预期的方式工作。我可以通过 JSON.stringify(usersOnline[0].Name); 在控制台中测试数组的值是什么
我查看了 Jquery 网站上的文档......我只是觉得我遗漏了一些东西或误解。如果有人能指出我正确的方向,那就太好了。
最终目标是输入用户名的前几个字母,然后自动完成其余部分。
【问题讨论】:
-
由于返回的值似乎是
json字符串,尝试JSON.parse(data)使其正常object? -
在我的代码中哪里可以找到它?在 For 循环中?
-
当数据从服务返回给您时,请按照 var response = JSON.parse(data) 的行做一些事情,其中数据是从服务返回的数据。这将允许您像普通的 javascript 对象一样操作 json。无论在哪里,您都可以在收到数据后立即执行此操作
-
解析不起作用,因为 json 字符串的前后有多余的引号。它没有将其视为有效。有没有办法把它们去掉?
标签: javascript jquery json jquery-ui