JSON 编码 PHP 不是对象?

JSON encoded PHP not an object?

我正在尝试通过 Ajax 发送数据,但出现以下错误:

Data Loading Warning - Invalid row data detected and ignored, expecting object but received: {PK:'2', ID:'3'} (anonymous) @ tabulator.min.js:2

我创建了一个 PHP 字符串,我将其放入数组并使用 json_encode()。它识别数组,但不识别其中的对象。我还需要做些什么才能将其读取为 JSON 对象吗?

我创建的字符串如下:

$datarray = [];
while ($fetch = $stmt->fetch()){
        $data = "{ PK:'2', id:'23' }";
        array_push($datarray, $data);
}
echo json_encode($datarray);

这是在 ajax 请求的页面中。该字符串最初由查询填充,但我对其进行了简化,但仍然无法正常工作。

在 js 中使用之前需要解析 json 字符串:JSON.parse(data)

我发现了这个问题。要使用 json_encode,它必须采用 PHP 格式。即 $key=>$value 而不是 JSON 格式 { key:'value'}。否则,编码将无法正常工作。当我将其切换为该格式时,它起作用了。

你一定要试试这个

$datarray = [];
while ($fetch = $stmt->fetch()){
        $data = "{ PK:'2', id:'23' }";
        $data = array(
          "PK"=>2,
           "id"=>23
        );
        array_push($datarray, $data);
}
echo json_encode($datarray);