JSON编码的PHP不是对象吗?

时间:2018-12-27 21:53:11

标签: php json tabulator

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

  

数据加载警告-检测到无效行数据并将其忽略,这是预期的       对象但已收到:{PK:'2',ID:'3'}(匿名)@ 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请求的页面中。该字符串最初是由查询填充的,但我对其进行了简化,但仍然无法使用。

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

您必须尝试这个

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