Javascript Json适用于某些变量,但不适用于其他变量

Javascript Json适用于某些变量,但不适用于其他变量,javascript,php,json,Javascript,Php,Json,我制作了一个脚本,通过Json请求信息。对于某些变量,这很好,但对于其他变量,则不然。 当我对变量neigur1使用alert()时,它表示变量未定义,而对变量编号和颜色使用相同的方法时,它工作得很好 这是请求脚本: function getcolours() { var hr = new XMLHttpRequest(); hr.open("GET", "camp_map_script.php", true); hr.setRequestHea

我制作了一个脚本,通过Json请求信息。对于某些变量,这很好,但对于其他变量,则不然。
当我对变量neigur1使用
alert()
时,它表示变量未定义,而对变量编号和颜色使用相同的方法时,它工作得很好

这是请求脚本:

function getcolours() {
        var hr = new XMLHttpRequest();
        hr.open("GET", "camp_map_script.php", true);
        hr.setRequestHeader("Content-type", "application/json");
        hr.onreadystatechange = function () {
            if (hr.readyState == 4 && hr.status == 200) {
                var data = JSON.parse(hr.responseText);
                for (var obj in data) {
                    number = data[obj].number;
                    colour = data[obj].colour;
                    neighbour1 = data[obj].n1;
                    alert (neighbour1);
                    window["colour" + number] = colour;
                    var x = document.getElementsByClassName(number + ' ' + colour);
                    x[0].style.display = "block";
                }
            }
        }
        hr.send(null);
    }
这是php部分:

<?php
include_once("../php_includes/check_login_status.php");
?><?php
$number = "";
$sql = "SELECT camp_id FROM users WHERE username='$log_username'";
$query = mysqli_query($connect, $sql);
$row = mysqli_fetch_row($query);
$campid = $row[0];
$sql = "SELECT players FROM campaigns WHERE id='$campid'";
$query = mysqli_query($connect, $sql);
$row = mysqli_fetch_row($query);
$players = $row[0];
$number = ($players*2)-1;
$sql = "SELECT number, colour, player, n1, n2, n3, n4, n5, n6, n7, n8 FROM lands WHERE camp_id='$campid' ORDER BY number";
$query = $connect->query($sql);
$jsonData = '{';
if ($query->num_rows > 0) {
    while($row = $query->fetch_assoc()) {
        $jsonData .= '"obj'.$row["number"].'":{"number":"'.$row["number"].'", "colour":"'.$row["colour"].'", "player":"'.$row["player"].'", "n1":"'.$row["n1"].'"},';
    }
}
$jsonData = chop($jsonData, ",");
$jsonData .= '}';
echo $jsonData;
$connect->close();
?>

console.log(数据)是什么;类似于?console.log(“neighbour1是%d”,neighbour1)告诉我`VM364:2 neighbour1 is NaN`当您在php中回显行['n1']时得到了什么值?它是字符串,数字,是什么类型的?既然你在循环,邻域1总是没有定义吗?n1是一个数字。当回显时,它是这样的{“obj1”:{“number”:“1”,“color”:“red”,“player”:“ivaldir”,“n1”:“2”},我在其他地方定义变量。