使用 Javascript 访问 JSON 元素

Access to JSON element with Javascript

本文关键字:元素 JSON 访问 Javascript 使用      更新时间:2023-09-26

我有这个简单的JSON对象:

 [{"k":51.39920565355378,"B":0.087890625}]

我想用Javascript访问k和B,这是我的代码:

 var jsonData = JSON.parse(jsonText);
 console.log(jsonData.k); //Undefined

无论我尝试什么,它总是返回我未定义,但是当我显示 jsonData 时,我可以看到 JSON 对象的所有描述:

 console.log(jsonData) //[{"k":51.39920565355378,"B":0.087890625}]

这是服务器代码女巫检索我的 JSON 对象:

 function getMarkersByTripId($tripId)
 {
    if ($bdd = mysqli_connect(_BDD_HOST_, _BDD_USERNAME_, _BDD_PASSWORD_, _BDD_NAME_)) {
    $sql = 'SELECT DISTINCT `markers` FROM `trip` WHERE `trip_id` = "'.$tripId.'"';
    $req = mysqli_query($bdd, $sql);
    if ($req) {
        $row = mysqli_fetch_row($req);
        echo json_encode($row[0]);
    }
    else {
        echo json_encode(array('status' => 'failure'));
    }
  }
    if ($bdd) {
    mysqli_close($bdd);
  }
}

函数女巫将我的 JSON 对象添加到数据库中:

 function actionSaveNewtrip($title, $status, $markers)
 {
    if ($bdd = mysqli_connect(_BDD_HOST_, _BDD_USERNAME_, _BDD_PASSWORD_, _BDD_NAME_)) {
        $markers = mysqli_real_escape_string($bdd, $markers);
        $sql = 'INSERT INTO `trip` (title, status, markers) VALUES("'.$title.'",  "'.$status.'", "'.$markers.'")';
        $req = mysqli_query($bdd, $sql);
      if ($req) {
        echo json_encode(array('status' => 'success'));
      }
       else {
          echo json_encode(array('status' => 'failure'));
      }
  }
  if ($bdd) {
    mysqli_close($bdd);
 }
}

$markers是我插入到数据库中的 JSON 对象。

想知道我做错了什么来像数组一样访问 k 和 B,谢谢。

您的 JSON 将解析为一个包含一个对象的数组。尝试

console.log(jsonData[0].k);

外部[ ]使其成为一个数组。

由于它被包装在一个数组中,你需要访问第一个数组

jsonData[0].k

您可以在以下代码片段中看到它的工作原理:

var jsonData = JSON.parse('[{"k":51.39920565355378,"B":0.087890625}]');
alert(jsonData[0].k)