json到javascript数组并存储用于外部ajax调用

时间:2015-06-30 18:50:46

标签: javascript php ajax json

嘿,希望得到一些快速的帮助,

我的总体目标是检索php数组并使用ajax调用将其存储到javascript数组中。我是新手,所以请耐心等待。

我的ajax调用成功,它返回echo json_encode(array);并转到成功函数。

我对如何获取json编码数据并将其存储到我能够在ajax调用之外使用的javascript数组感到困惑。

$.ajax({
        type: "POST",
        url: myurl.php
        data: {var1: var1, var2:var2},
        dataType: "json",
        success: function(data)
        {
          console.log(data);
          var simplified = JSON.stringify(data);
          console.log(simplified);
          var jsonObj = $.parseJSON('[' + simplified + ']');
        },
    });

控制台日志给了我;

Object {63: Object, 64: Object, 65: Object}

{"63":{"Comment":"tc 1"},"64":{"Comment":"tc 2"},"65":{"Comment":"tc 3"}}

分别

我想要一个这种形式的数组;

63
  Comment=>"tc 1"
64
  Comment=>"tc 2"
65 
  Comment=>"tc 3"

感谢您提供任何帮助!

UPADTE: 关于如何在ajax调用之外访问创建的数组的任何建议?每当我尝试时,它都表示未定义。

3 个答案:

答案 0 :(得分:2)

您必须遍历对象的属性并创建一个数组:

var myObj = {
    1: [1, 2, 3],
    2: [4, 5, 6]
};

var array = $.map(myObj, function(value, index) {
    return [value];
});


console.log(array);

答案 1 :(得分:1)

你在这里:

var data = JSON.parse('{"63":{"Comment":"tc 1"},"64":{"Comment":"tc 2"},"65":{"Comment":"tc 3"}}');
alert(data[63].Comment); // to access

希望得到这个帮助。

答案 2 :(得分:1)

您的data变量已经是一个对象。 jQuery在内部将JSON解析为一个对象。如果你想把它变成一个数组,你可以去:

$.ajax({
  type: "POST",
  url: myurl.php
  data: {var1: var1, var2:var2},
  dataType: "json",
  success: function(data)
  {
    var arr = [];

    $.map(data, function(value) {
      arr.push(value);
    });
  }
});

但是,如果您仍然需要密钥(您在服务器端),请保持这样,并像data[63]一样访问它。 Javascript没有关联数组,这里它们是对象,语义上称为类似数组的对象。