如何在JQuery中创建JSON数组?
我想创建一个JSON数组,如下所示:如何在JQuery中创建JSON数组?,jquery,arrays,json,Jquery,Arrays,Json,我想创建一个JSON数组,如下所示: var ddBasic = [ { text: "Facebook", value: 1, }, { text: "Twitter", value: 2, }, { text: "LinkedIn", value: 3, }, { text: "Foursquare", value: 4, } ]; var tags = [ { text: "rock", value: "rock", },
var ddBasic = [
{ text: "Facebook", value: 1, },
{ text: "Twitter", value: 2, },
{ text: "LinkedIn", value: 3, },
{ text: "Foursquare", value: 4, }
];
var tags = [
{ text: "rock", value: "rock", },
{ text: "pop", value: "pop", },
];
我使用的是last.fm中的数据,所以它是这样的:
var ddBasic = [
{ text: "Facebook", value: 1, },
{ text: "Twitter", value: 2, },
{ text: "LinkedIn", value: 3, },
{ text: "Foursquare", value: 4, }
];
var tags = [
{ text: "rock", value: "rock", },
{ text: "pop", value: "pop", },
];
它需要在末尾有一个逗号,这样下拉函数就可以忽略imageSrc和它可以用于下拉的其他内容,否则会抛出以下错误:
Uncaught TypeError: Cannot read property 'imageSrc' of undefined
为了把一切联系在一起,我有:
$('#tag').ddslick({
data: tags,
onSelected: function(selectedData) {}
});
这是获取标记的函数:
var tags = [];
var getTopTracks = function () {
$.getJSON(
settings.PHP_REQUEST_URL, {
method: "tag.getTopTags",
api_key: settings.LASTFM_APIKEY,
format: "json",
},
function (data) {
var limit = 50;
data.toptags.tag.sort(function (t1, t2) {
return t2.count - t1.count;
});
$.each(data.toptags.tag, function (i, item) {
if (i > limit) return false;
console.log(item.name);
tags.push({
text: item.name,
value: item.name
});
});
});
};
// event handlers (load quando o form é invocado só)
getTopTracks();
alert(tags.length);
// define tema para a combobox
$('#tag').ddslick({
data: tags,
onSelected: function (selectedData) {}
});
我怎样才能做到这一点
var tags = []; //initialised tags with length 0
getTopTracks(); //fetching date in background (!)
alert(tags.length); //running while data is still fitched (unless you've a 0ping connection => alerting length 0
在使用警报时,很可能标记
未作为$填充。getJSON()
是一个异步请求,这意味着该请求将在后台处理,脚本将继续执行。必须像填充数组一样使用回调方法
This, getJSON, is a shorthand Ajax function, which is equivalent to:
$.ajax({
url: url,
dataType: 'json',
data: data,
success: callback
});
你是说用逗号很好?我不明白这会有什么不同。哦…显然不是逗号,而是我数组中的某个东西。我正在用
标签推送值代码>-这是正确的语法吗?推后长度显示为0,这让我想知道出了什么问题。检查控制台是否有错误。。。item
是否已定义?@sachleen:可能,但这意味着还有另一个标记
变量隐藏在某个地方(well:where?),因为否则push
会抛出类似无法调用未定义的push
的错误,这是因为我试图在AJAX完成请求之前获取值。都修好了。非常感谢你的帮助。哦,哇,这是因为我在页面加载上做这个,这意味着它在调用之前加载元素。如何等待它完成?您可以将代码移到$之后。每个
都进入回调方法。因此,请确保在填充数组后执行它。值可以,但文本属性显示为未定义:@CanÜrek:uhm不能真正跟随。你介意为你的问题再写一个问题吗?我会处理的。我的解决方案是这样的。var json={};json[name]=值;这是我的工作。