繁体   English   中英

将PDO对象转换为Javascript JSON

[英]Converting a PDO object to a Javascript JSON

我目前正在尝试将PDO对象转换为JavaScript JSON。

这是我的代码:

PHP:

  $personArray = array();
  $queryResult = < this gets the valid result of a $statement->fetchall(PDO:FETCH_ASSOC) >

  foreach($queryResult as $p){

      $personArray[] = array(
                        "Id" => $p["Id"],
                        "Name" => $p["Name"],
                        "Text" => $p["Text"]
      );
  }

  echo json_encode($personArray);

请注意,我尝试执行json_encode($queryResult); 以前,但似乎我必须更改所有我不想做的语句的内容。

这是我收到的JS:function refreshEntries(){

$.ajax({
    url: "< my PHP file >",
    type: 'POST',
    success: function(returnPDO){

        var obj = JSON.parse(returnPDO);

        ...
    }
});

}

Javascript,更确切地说是JSON.parse(returnPDO); 是突破点。 我每次都会收到" Uncaught SyntaxError: Unexpected token a "错误消息,我非常确定这是来自位于PHP数组开头的array()

这里肯定有一些错误,但是我无法弄清楚到底是什么。 我想我知道错误在哪里,但不知道如何解决。 有什么帮助吗?

您已经将pdo作为关联数组获取了,那么为什么不仅仅对pdo结果进行json_encode?

  $toReturn = json_encode($queryResult);
  echo $toReturn;

您也没有在ajax调用中将dataType:设置为json。

  $.ajax({
    url: "< my PHP file >",
    type: 'POST',
    dataType: 'json',
    success: function(returnPDO){

        var obj = JSON.parse(returnPDO);

        ...
     }
  });

您的json必须符合规范,它应该是utf-8字符串,其中没有特殊字符。 属性名称必须用双引号和and和...引起来。

我建议您获取一些数据样本,并将其提交到https://jsonformatter.curiousconcept.com/,这将解析您的json并为您提供解决问题的良方

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM