我试图将一些数据从PHP传输到json格式的javascript . 数据实际上是数据库表的两个字段,“湿度”和“温度” . 在以数组($ wData)的形式从php中的数据库中获取数据之后,我使用json_encode将其编码为json,在js var(WData)中获取引用并将其作为参数(jData)传递给js函数 .

在js函数中接收后的数据显示正常 . 但是当我尝试使用jData.humidity或jData.temperature从中提取“湿度”或“温度”值时,它会在控制台中显示“未定义”结果 . 还有一件事是,'湿度''或'温度'变量在我写'jData'之后不会出现在IDE中 .

虽然如果我把jData [0],它显示两个变量的值 . 我需要分别获取两个变量的值,因为我需要使用它们在图表中显示自己的值 .

但结果显示数据至少已收到 . 所以我的问题是如何在不同的变量中获得'湿度'和'温度'的值,就像在我的js代码中那样 .

这是我的代码:

PHP CODE

$result = $stmt->setFetchMode(PDO::FETCH_ASSOC);
$WData = $stmt->fetchAll();

/*
echo "<pre>".print_r($WData, true)."</pre>"; 
die();
*/

?>

<script>
  var WData = <?php print_r(json_encode($WData));?>;
//  console.log(WData);
  dspChrt(WData);
</script>

JS CODE

function dspChrt(jData) { 

    //jData = JSON.parse(wData); 
    console.log(jData[0]); //outputs value
    console.log(jData.humidity); //outputs 'undefined'

    hum = jData.humidity;
    tem = jData.temperature;
    humArray.shift();
    humArray.push(hum);
    temArray.shift();
    temArray.push(tem);

".print_r($WData, true).""; die();

Array
(
    [0] => Array
        (
            [humidity] => 77.7
            [temperature] => 22.1
        )

    [1] => Array
        (
            [humidity] => 81.7
            [temperature] => 28.1
        )

    [2] => Array
        (
            [humidity] => 67.21
            [temperature] => 28.9
        )

    [3] => Array
        (
            [humidity] => 11.11
            [temperature] => 22.11
        )

    [4] => Array
        (
            [humidity] => 15
            [temperature] => 77.7
        )

    [5] => Array
        (
            [humidity] => 15
            [temperature] => 77.7
        )

console.log(jData); output

[0…999]
​​
[0…99]
​​​
0: Object { humidity: "77.7", temperature: "22.1" }
​​​
    1: Object { humidity: "81.7", temperature: "28.1" }
    ​​​
    2: Object { humidity: "67.21", temperature: "28.9" }
    ​​​
    3: Object { humidity: "11.11", temperature: "22.11" }
    ​​​
    4: Object { humidity: "15", temperature: "77.7" }
    ​​​
    5: Object { humidity: "15", temperature: "77.7" }

console.log(jData[0]); output

{
  "humidity": "77.7",
  "temperature": "22.1"
}

console.log(jData.humidity) output

undefined

console.log(jData.humidity[]); output

SyntaxError: expected expression, got ']'