如何使用JSON数组中的值更改$ .get中的数据元素?

时间:2016-03-08 00:10:16

标签: javascript jquery arrays json

如何使用JSON数组中的值更改$ .get中的数据元素?

以下是执行操作一次的代码示例:

          $.get(url, {
                'p': testerName,
                'magic': 'magic', //this value is constant now but may change
                'init': init1   //this is the value I want to change from a value in a JSON array
            }, function() {
                // console.log('done');

            });

我想要改变的值是" init"。例如,如果" init1"在一个类似于:

的JSON数组中
    "initvalues":[
        {"init1":"usethisfirst"}, 
        {"init1":"usethissecond"}, 
        {"init1":"usethisthird"}
    ]

我希望$.get运行三次并停止。当然,如果数组中有更多的值,它应该使用所有值并停止。值的数量预计是可变的。

在下面的示例中,如果我命名为var init1 = usethisfirst,它将运行一次。

        $.get(url, {
            'p': testerName,
            'magic': 'magic', //this value is constant now but may change
            'init': init1   //this is the value I want to change from a value in a JSON array
        }, function() {
            // console.log('done');

        });

并且,我可以继续为" init1"的每个不同值重复该例程。但我知道必须有更好的方法。

其他信息:

目标是避免对重复$.get函数进行硬编码,并使用一个由JSON数组中的值数驱动n次的函数。

1 个答案:

答案 0 :(得分:2)

最简单的方法可能是使用forEach之类的东西来执行get请求。如果你只想设置init某些init1字段的var init_values = [ {"init1" : "use this first"}, {"init1" : "use this second"}, {"init1" : "use this third"} ]; init_values.forEach(function(settings) { $.get(url, { 'p' : testerName, 'magic' : 'magic', 'init': settings['init1'] }, function() { // Do something for this particular request. }); }); 字段,你可以尝试这样的事情:

var init_values = [
  {
    "p" : "some value",
    "magic" : "magic",
    "init" : "use this first"
  },
  {
    "p" : "a different value",
    // No value for magic - use default.
    "init" : "use this second"
  },
  {"init" : "use this third"}  // Use defaults for 'p' and 'magic'.
];

init_values.forEach(function(settings) {
  var defaults = {
    "p" : "default p",
    "magic" : "default magic",
    "init" : "default init"
  };
  $.get(url, $.extend(defaults, settings), function() {
    // Do something for this request.
  });
});

但是,根据您的JSON数组的来源,您可能还有兴趣自动设置其他字段:

{{1}}