Php 访问多维JSON数据时出现问题
我的JSON输出如下所示: 我可以通过更改JSON的参数来获取并手动访问链接来访问JSON输出。每当我尝试像这样通过post访问时,console.log行上就会出现一个未定义的错误。我想这可能是因为我有一个Json数组,每个键都是它自己的数组,但一旦我离开第一维度,我就不是那么棒了。我试过很多变体Php 访问多维JSON数据时出现问题,php,jquery,json,Php,Jquery,Json,我的JSON输出如下所示: 我可以通过更改JSON的参数来获取并手动访问链接来访问JSON输出。每当我尝试像这样通过post访问时,console.log行上就会出现一个未定义的错误。我想这可能是因为我有一个Json数组,每个键都是它自己的数组,但一旦我离开第一维度,我就不是那么棒了。我试过很多变体 data.songartist data[songartist] data[songartist][1] 等等等等 下面是generateplaylist.php的代码 if(isset($_P
data.songartist
data[songartist]
data[songartist][1]
等等等等
下面是generateplaylist.php的代码
if(isset($_POST['id'])){
$json = array(
'success' => false,
'songartist' => '',
'songname' => ''
);
$x = 0;
while($row = mysqli_fetch_array($result)) {
$songartist[$x] = $row['songartist'];
$songname[$x] = $row['songtitle'];
$x++;
}
$json['success'] = true;
$json['songartist'] = $songartist;
$json['songname'] = $songname;
echo json_encode($json);
}
您应该通过以下jQueryAjax请求获取数据
$.ajax({
type: "POST",
url: "generateplaylist.php",
dataType: "json", // set explicit expected format as json
data: {
id: myClassID
}
})
.success(function(data) {
console.log(data.songartist[1]);
})
.error(function (jqXHR, textStatus) {
alert("Request failed: " + textStatus);
});
数据包含一个名为songartist
的元素,该元素是一个字符串数组,因此可以使用数据引用它。songartist[1]
从数组中获取第一个字符串
小费
在php中,可以向数组中添加项,而无需指定索引。您可以将循环的代码重写为
$songartist = []; // define array
$songname = []; // define array
while($row = mysqli_fetch_array($result)) {
$songartist[] = $row['songartist'];
$songname[] = $row['songtitle'];
}
你能展示一下
generateplaylist.php
的代码吗?用这段代码进行了更新,精简了一些,我有多个ajax请求正在运行,除了我将数组存储在键中而不是单个值之外,这段代码的设置与其他代码相同。很高兴了解语法,像这样写的更干净-我非常确定这会起作用,我得到的是一个错误,而不是未定义的。我不断收到“parse error”,这可能是我停止在请求中包含数据类型:“json”的原因。我假设,一旦我修复了PHP代码以解析出正确的Json(不确定为什么不是),它就会运行。谢谢编辑:为arrayLol干杯,结果是我的歌曲URL中有一个非UTF-8字符,这导致了解析错误,也是在我声明数据类型之前代码没有运行的原因。小事情,很高兴我得出了这个结论。我必须做很多小的改变来适应它,我应该已经做了
$songartist = []; // define array
$songname = []; // define array
while($row = mysqli_fetch_array($result)) {
$songartist[] = $row['songartist'];
$songname[] = $row['songtitle'];
}