将json数组解析为javascript数组?

时间:2011-08-23 16:23:35

标签: javascript jquery arrays json

  

可能重复:
  How might I extract the property values of a JavaScript object into an array?

所以我有一个json数组从一个非常简单的服务器作为一个数组提供给我的本地服务器。我希望将数据解析为javascript,以便在我的网络应用程序中使用。

如何将JSONP数组转换为javascript数组?并失去JSON中的“名字”。

e.g。

myjsoncallback({"h1": "cmPanel", "h2" : "cmAuto", "h3": 0})

成为

(["cmPanel","cmAuto",0])

感谢提前筹码,我一如既往地感谢您提供的任何帮助!

3 个答案:

答案 0 :(得分:3)

这样的东西?

function myjsoncallback(obj) {
  var result = [];

  for (var key in obj) {
    result.push(obj[key]);
  }

  // result is now an array of the input object's values.
}

如果你正在使用jQuery 1.6+,jQuery's $.map() function now works against objects并简化语法(尽管它在幕后做同样的事情):

function myjsoncallback(obj) {
  var result = $.map(obj, function(value, key) {
    return value;
  });
}

要使用jQuery $ .getJSON调用正确支持JSONP的服务,可以执行以下操作:

$.getJSON('http://some.api.com/x/y/x?callback=?', function(response) {
  var values = $.map(response, function(value, key) {
    return value;
  });

  // Do something with "values" here.
});

当您指定callback=?而不是硬编码您自己的回调函数名称时,jQuery将自动为每个请求替换唯一命名的一个(这样您就不必担心保持哪个回调执行匹配哪个请求,如果您最终有多个同时请求)。因为它可以为您完成,您可以为回调参数传递一个匿名函数,而不必担心设置独立函数。

答案 1 :(得分:0)

function myjsoncallback(data) {
  var output = [];
  for (var x in data) {
    output.push(data[x]);
  }
  return output;
}

myjsoncallback({"h1": "cmPanel", "h2" : "cmAuto", "h3": 0});

答案 2 :(得分:0)

var ar = [];
for (var prop in your_json) {
      ar.push(your_son[prop]);
   }

我希望这会有所帮助