Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.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/4/json/13.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索引数组_Javascript_Json - Fatal编程技术网

JSON索引数组到javascript索引数组

JSON索引数组到javascript索引数组,javascript,json,Javascript,Json,我有一个php文件,它响应以下JSON编码的索引数组 PHP信息 php页面具有以下标题 header("Content-Type: application/json"); php响应以下json索引数组 [ [ [17, 28, 1, "z"], [28, 31, 6, "b"], [8, 29, 6, "b"] ], [ [19, 28, 1,

我有一个php文件,它响应以下JSON编码的索引数组

PHP信息

php页面具有以下标题

header("Content-Type: application/json");
php响应以下json索引数组

 [
        [
            [17, 28, 1, "z"],
            [28, 31, 6, "b"],
            [8, 29, 6, "b"]
        ],
        [
            [19, 28, 1, "z"],
            [17, 25, 6, "b"],
            [19, 25, 6, "b"],
            [27, 32, 6, "b"],
            [9, 28, 6, "b"]
        ]
    ]
我一直在使用jquery将其复制为一个索引javascript数组,我更喜欢使用POST,因为将来可能会有很多数据要传递。我遇到的所有示例都是用于关联数组的小型使用和/或用于即时输出

JAVASCRIPT尝试

$.post('matchEngine.php', 
    function(data){
        var info = data; 
        document.write(info);
        }
    ); 
//输出=17、28、1、“z”、28、31、6、“b”、8、29、6、“b”等一长串csv值

$.post('matchEngine.php', 
        function(data){
        var info = $.parseJSON(data); 
        document.write(info);
        }
        ); 
//无输出

期望结果

var info=  [[[17, 28, 1, "z"],[28, 31, 6, "b"],[8, 29, 6, "b"]],[[19, 28, 1, "z"],[17, 25, 6, "b"],[19, 25, 6, "b"],[27, 32, 6, "b"],[9, 28, 6, "b"]]]

第一个代码的输出与预期完全一致

如果将数组转换为字符串,它将生成一个以逗号分隔的列表,列出每个项的字符串表示形式。由于项目是数组,它们也将转换为逗号分隔的字符串

因此,输出中的
17,28,1,“z”
是第一个内部数组的字符串表示形式,后跟逗号,以及下一个数组的字符串表示形式,依此类推。由于每个级别都由逗号分隔,因此无法通过查看输出来区分嵌套数组和平面数组之间的区别

在第二段代码中,您试图解析已经解析的数据。这将隐式地将数组转换为字符串表示形式,因为这不是有效的JSON,所以您不会得到任何返回


要访问数据,只需使用括号访问数组中的项。例如,
data[0]
将返回数组
[[17,28,1,“z”],[28,31,6,“b”],[8,29,6,“b”]
data[0][0]
将返回数组
[17,28,1,“z”]
数据[0][3]
将首先返回值
“z”

,如果这是整个PHP文件,你用JSON发送了一些虚假的文本。如果之前有一个打开的PHP标记,则不会发送任何内容。我应该假设在前两行之间有一个结束的PHP标记吗?如果我只在浏览器中加载PHP,那么它是PHP json_编码的回声。第二个,
文档。加载文档后不能使用write,除非你不介意整个网页消失。最好完全避免使用它-您可以使用
控制台.log
。@jan,我知道它只是用来测试
文档的。写
仅仅是调试您得到的值的方法吗?如果是这样,这是一种糟糕的调试方式;使用
console.log
并查看Javascript控制台。或者你是想把这个
[[…]]
结构打印到文档中?!谢谢,但是我如何创建一个保存这个数组数据的变量呢?因为document.write将向我显示数组,但我不会生成任何内容或csv@Gamemorize
data
就是那个变量!你已经有了!您只是看错了。@Gamemorize
document.write(…)
本身无法保留数组结构。如果您想将数组显示为JSON,首先需要对其进行编码:
document.body.innerHTML+=JSON.stringify(…)
(我拒绝使用DW)。祝大家!感谢+1,它仍然在扭曲我的瓜,我似乎无法“工作”的数据虽然。。。但至少我知道它的'那里'在一个合适的格式!