【问题标题】:JSON encoded PHP not an object? [closed]JSON编码的PHP不是一个对象? [关闭]
【发布时间】:2018-12-27 21:53:11
【问题描述】:

我正在尝试通过 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 请求的页面中。该字符串最初是由查询填充的,但我简化了它,它仍然不起作用。

【问题讨论】:

  • 请解压一个minimal reproducible example,这样可以重现这种情况。
  • @UlrichEckhardt 我添加了用于生成 ajax 响应的脚本。我没有从制表库中接收它的确切脚本。

标签: php json tabulator


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      你必须试试这个

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

      【讨论】:

        猜你喜欢
        • 2013-07-07
        • 1970-01-01
        • 2011-11-11
        • 1970-01-01
        • 2013-10-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多