javascript - 语法错误: Unexpected token "[ " in JSON - Javascript

标签 javascript json

我正在尝试从数据库中检索数据。无论我检索到什么数据,我都会将该数据放入数组中,然后应用 json_encode($data) 。我在响应中成功获取了对象数组 as a text 。但是当我尝试 JSON.parse(response)我收到一个错误,其中显示意外 token [

首先我认为数据已经被解析,所以我尝试了 console.log(response[0])为了打印第一个对象,但结果是 [ 。不知道出了什么问题。

我的问题可能与其他人相同,但我尝试了所有可能的解决方案,但无法通过这些答案解决问题。

我的 PHP 代码:

public

function showDeposits($db_conn) {

  $sql = "SELECT * FROM `deposit`";

  if ($db_conn - > query($sql)) {
    $r = $db_conn - > query($sql);
    if ($r - > num_rows > 0) {
      $data = array();
      for ($i = 0; $i < $r - > num_rows; $i++) {
        $data[] = $r - > fetch_assoc();
      }
      echo json_encode($data);
    }
  }

}

我的Javascript代码:

this.depositForm = function() {
  var form = document.querySelector("#dep_form");

  form.addEventListener("submit", function(e) {
    e.preventDefault();
    var json = {
      time: getTime().text,
      stamp: getTime().stamp,
      date: getDate().dateText,
      data: JSON.parse(toJSONString(this))
    };
    fetch("model.php", {
      method: "POST",
      headers: {
        "Content-Type": "application/json"
      },
      body: JSON.stringify(json)
    }).then(function(t) {
      t.text().then(function(res) {
        var j = JSON.parse(res);
        console.log(j);
      })
    })

  })

}

回应

Result

最佳答案

不必使用 .text() 然后解析它,您只需使用 .json

this.depositForm = function() {
  var form = document.querySelector("#dep_form");

  form.addEventListener("submit", function(e) {
    e.preventDefault();
    var json = {
      time: getTime().text,
      stamp: getTime().stamp,
      date: getDate().dateText,
      data: JSON.parse(toJSONString(this))
    };
    fetch("model.php", {
      method: "POST",
      headers: {
        "Content-Type": "application/json"
      },
      body: JSON.stringify(json)
    })
    .then((res) => res.json())
    .then((data) => console.log(data))
  })
}

小提示:您应该使用promise chaining .

关于javascript - 语法错误: Unexpected token "[ " in JSON - Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53029269/

相关文章:

javascript - 从 swift 或 objective-c 向 js 发送事件

php - 将数据 PHP 多维数组传递到 Javascript

json - 无法在golang中解析JSON

java - Java 的 REST 和 HTTP API 客户端,如 RestSharp(http ://restsharp. org/)

javascript - 为动态对象定义编写更清晰的代码

javascript - 如何将 AWS SDK 导入 Vue.JS

android - 适用于 Android 和 Mysql 的最佳 Web 服务

PHP json_decode 返回 null

javascript - 单击后 AngularJS "double checking"中的复选框

javascript - Serverless 不创建 SQS 事件