使用javascript获取JSON返回的数组中的特定值
我在使用AJAX调用获取从PHP文件返回的数组中的内容时遇到问题 下面是我从数据库中获取内容的php文件的一部分:使用javascript获取JSON返回的数组中的特定值,javascript,php,ajax,json,Javascript,Php,Ajax,Json,我在使用AJAX调用获取从PHP文件返回的数组中的内容时遇到问题 下面是我从数据库中获取内容的php文件的一部分: <? ... $sql = "SELECT id, nome FROM (SELECT cod_district AS ID, district AS nome FROM pms_district WHERE
<?
...
$sql = "SELECT id,
nome
FROM (SELECT cod_district AS ID,
district AS nome
FROM pms_district
WHERE cod_pais =".$cod_pais.")
ORDER BY id";
$state = array();
if ($db->query($sql)) {
while ($db->next_record()) {
$state['id'] = $db->f('id');
$state['nome'] = utf8_encode($db->f('nome'));
$return_state[] = $state;
}
}
$sql = "SELECT id,
nome
FROM (SELECT cod_cidade AS ID,
cidade AS nome
FROM c_cidade
WHERE cod_pais =".$cod_pais.")
ORDER BY id";
$city = array();
if ($db->query($sql)) {
while ($db->next_record()) {
$city['id'] = $db->f('id');
$city['nome'] = utf8_encode($db->f('nome'));
$return_city[] = $city;
}
}
$return = array('estado' => $return_state,
'cidade' => $return_city
);
echo json_encode($return);
?>
在尝试获取特定对象时,我无法访问AJAX请求响应的数据
(我在执行console.log(xmlhttp.responseText)时得到上面显示的响应)
这是用于访问返回值的代码:
var obj = xmlhttp.responseText;
var parsed = JSON.parse(obj);
parsed[0].nome;
这就是错误的来源:
TypeError:parsed[0]未定义
我这样做是为了检查“cidade”中的每个元素
PS:我只能使用javascript
谢谢,您的响应不是数组,因此无法使用数字索引引用它。使用解析后的[“cidade”][0]。改为使用nome。您的响应是JSON。您可以像下面这样访问您的数据
var cidade = parsed.cidade;
OR
var cidade = parsed['cidade'];
for(var i in cidade)
{
var id = cidade[i].id;
var nome = cidade[i].nome;
}
console.log(已解析)
显示了什么?它显示了[object object],但拉吉夫里西的回答解决了我的问题,谢谢。这确实是我的错误,谢谢!
var cidade = parsed.cidade;
OR
var cidade = parsed['cidade'];
for(var i in cidade)
{
var id = cidade[i].id;
var nome = cidade[i].nome;
}