如何使用JQuery向JSON添加子数组?

时间:2011-09-09 01:23:54

标签: jquery json maps

我正在尝试按如下方式创建JSON对象:

var request = {
    location : pyrmont,
    radius : '50000',
    types: ['amusement_park', 'store'] //Here I want to replace with a javascript array 
};

这个JSON可以很好地作为Google Maps API的输入,但是当我尝试替换时 这样一个javascript数组失败了。任何帮助表示赞赏!

var allVals = [];
$('#geo_form :checked').each(function() {
  allVals.push("'" + $(this).val() + "'");
});
alert("allVals -> " + allVals);  //allVals -> 'amusement_park','lodging'

var request = {
    location : pyrmont,
    radius : '50000',
    //types: ['amusement_park', 'store']
    types: [allVals]
};

1 个答案:

答案 0 :(得分:3)

allVals已经是一个数组,您不需要将它包装在request对象的括号中。通过将数组包装在括号中,可以将allVals数组设置为新数组的最零索引。

var request = {
    location : pyrmont,
    radius : '50000',
    types: allVals
};

此外,当您将值推送到数组时,您不需要将值包装在引号中,因为它已经是String对象。

实际上,您可以通过最初在请求对象中创建一个空数组并通过直接访问该属性来推送到该对象,从而避免在请求对象之外声明变量。

示例:

var request = {
    types : []
};
request.types.push($(this).val());

对于大多数数据结构问题,最好将对象打印到控制台调试器以查看对象中包含的值。 Firefox有流行的firebug,Chrome,Opera,新版本的IE内置了一个控制台调试器。使用方法console.log(arg)进行打印。