Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.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/1/cassandra/3.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
json到javascript数组并存储以供外部ajax调用使用_Javascript_Php_Ajax_Json - Fatal编程技术网

json到javascript数组并存储以供外部ajax调用使用

json到javascript数组并存储以供外部ajax调用使用,javascript,php,ajax,json,Javascript,Php,Ajax,Json,嘿,我希望能得到一些快速的帮助 我的总体目标是检索php数组,并使用ajax调用将其存储到javascript数组中。我对这一切都不熟悉,所以请容忍我 我的ajax调用成功,因此它返回echo json_encode(数组);然后转到成功函数 我对如何获取json编码的数据并将其存储到javascript数组中感到困惑,我可以在ajax调用之外使用该数组 $.ajax({ type: "POST", url: myurl.php data: {va

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

我的总体目标是检索php数组,并使用ajax调用将其存储到javascript数组中。我对这一切都不熟悉,所以请容忍我

我的ajax调用成功,因此它返回echo json_encode(数组);然后转到成功函数

我对如何获取json编码的数据并将其存储到javascript数组中感到困惑,我可以在ajax调用之外使用该数组

$.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"
谢谢你的帮助

UPADTE:
关于如何在ajax调用之外访问创建的数组,有什么建议吗?每次尝试时,它都会说它未定义。

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

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

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


console.log(array);
给你:

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

希望有此帮助。

您的
数据
变量已经是一个对象。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);
    });
  }
});

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

JSON已经是一个数组,更确切地说是一个对象在ajax调用之外,然后
anArray=jsonObj
在你的
success
回调中。嗯,我试图在ajax调用之外使用“数据”,它说它是未定义的。有什么建议吗?你应该有一个
全局
变量,并将
数据
分配给它,然后享受!
$.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);
    });
  }
});