【问题标题】:Slim remove the last two characters on my Json stringSlim 删除我的 Json 字符串的最后两个字符
【发布时间】:2017-02-17 16:13:49
【问题描述】:

我正在使用 slim 框架来创建一个 api,其中包含从我的数据库中获取所有帐户的路由。我尝试在 json 中返回帐户列表,但它删除了最后两个字符,这使其成为无效的 Json,因为它应该以 }] 结尾。我不知道它为什么这样做以及如何解决它。

<?php
 header("Content-Type: application/json;charset=utf-8");

   class Account {

         public function getAll(){

                         $db_connection = new Connection();
                         $conn = $db_connection->getConnection();
                         $result = $conn->query("SELECT * from accounts");

                         $numrows = $result->rowCount();
                         if ($numrows > 0) {
                             $rowset = $result->fetchAll(PDO::FETCH_ASSOC);
                          }
                          else {
                              $message['Error'] = 'No Account found';
                              $rowset = $message;     
                          }

                         return $rowset;

           }
  }

我在我的路由中调用 getAll 方法,比如

 $app->get('/Account/GetAll', function($request, $response, $args) use ($app){
  $application = new Account();
  return $response->withJSON($application->getAll()); 
 });

【问题讨论】:

  • $numrows = $result-&gt;rowCount(); $rowset = array(); if ($numrows &gt; 0) { $rowset[] = $result-&gt;fetchAll(PDO::FETCH_ASSOC); } else { $message['Error'] = 'No Account found'; $rowset = $message; } return $rowset;检查一次
  • @Anant 我试过了,但还是不行。
  • 看起来问题是基于字符限制的。当我从帐户限制 13 中选择 * 时,它会返回一个包含 9225 个字符的有效 json。一一列出所有列,限制为 14,我得到 9587 个字符。我减去 2 列增加限制 15 我得到 9502 个字符。减去 5 列,我得到 9401 个字符,限制为 17。我得到 9506 个字符,限制为 19 减去 7 列。如果我将 1 添加到限制中,它们中的每一个都会抛出错误错误字符串。如果您有任何解决方案,请告诉我。

标签: php json slim


【解决方案1】:

PHP 标记之外还有一些空格。最可能的情况是&lt;?php 上方有一个空行。或者,?&gt; 后面可能有两个空行。

【讨论】:

  • 我检查了我的代码,在 php 标记之前没有空行,在 php 关闭标记之后也没有。我意识到,当我在查询上设置小于 20 的限制时,它可以正常工作,但是如果我不添加限制,它会删除最后两个字符并从另一个应用程序调用它会引发错误,因为它不是有效的json.
  • 请创建一个非常小的单文件(& composer.json)示例应用程序来显示问题。
  • 我不明白你要我创建什么文件。
猜你喜欢
  • 2017-02-22
  • 2015-08-22
  • 2016-01-21
  • 2019-10-25
  • 2011-12-15
  • 1970-01-01
  • 2010-12-20
  • 1970-01-01
相关资源
最近更新 更多