我有一个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);
}
);
// output = 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"]]]
答案 0 :(得分:3)
第一个代码的输出完全符合预期。
如果将数组转换为字符串,它将以逗号分隔的每个项目的字符串表示形式列表。由于这些项是数组,因此它们也将转换为逗号分隔的字符串。
因此,输出中的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"]
,而data[0][0][3]
将返回值"z"
。