Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在JQuery中创建JSON数组?_Jquery_Arrays_Json - Fatal编程技术网

如何在JQuery中创建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", },

我想创建一个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", },
        { 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]=值;这是我的工作。