我已经设法从数据库中获得了一个JSON输出,用于jQuery UI AutoComplete,这很好。
它的问题是,似乎自动删除插件为我完成了JSON数据的所有解析,所以我仍然要弄清楚它是如何实际完成的。
我有一个URL,http://test.hartnollguitars.co.uk/jsonOut/products.aspx?term=761294042656&barbard=yes(举个例子(,它给了我一个来自与我用于自动完成相同的JSON输出的单个记录,我正试图将这个单个记录输出用于单个案例。
所以我一直在谷歌上搜索jQuerygetJSON,但我似乎无法获得信息。
$.getJSON("jsonOut/products.aspx?barcode=yes", function () { alert(data.label); });
这就是我现在的处境,我知道这是错误的,我已经根据jQuery网站上的示例尝试了该代码的各种其他排列,但我就是无法获得所需的输出。
很明显,这是因为我不知道自己在做什么,但有人能解释一下你是如何做到的吗:
- 从这样的单个记录中获取数据
- 从一系列数据中获取数据并循环显示输出(例如,从Facebook Graph的FQL输出中获取事件等简单对象(
非常感谢所有的帮助!
data
不是凭空而来的,它是成功函数的参数
$.getJSON(
"jsonOut/products.aspx?barcode=yes",
function (data) {
alert(data.label);
});
然后你输出一个阵列
[
{
"label": "Boss TR-2 Tremolo Pedal",
"price": 79,
"id": 1287
}
]
这就是"[]"分支的含义,因此您的数据可以通过另一种方式访问
data[0].label
请考虑在Firefox中开发并使用FireBug,然后您可以编写
console.log(data);
与alert((不同,wich将使您对对象有更深入的了解。
我查看了您的JSON输出:[{"label":"Boss TR-2 Tremolo Pedal","price":79,"id":1287}]
问题是,您的代码输出一个对象列表。请改用data[0].label
。
/
时,它才会工作。返回的JSON是一个数组,因此必须取消引用一个元素:
$.getJSON("/jsonOut/products.aspx?barcode=yes", function (data) { alert(data[0].label); });
或者更有用的方法是:
$.getJSON("/jsonOut/products.aspx?barcode=yes", function (data) {
for (var i = 0; i < data.length; ++i) {
alert(data[i].label);
}
});