Php 邮差秀出人意料';A';在json响应中,但json格式良好

Php 邮差秀出人意料';A';在json响应中,但json格式良好,php,json,silex,postman,Php,Json,Silex,Postman,我正在用Silex框架开发一个后端,我正在测试这段代码 foreach($P as $key=>$value) { $strInsert =$key."=>".$value; array_push($json,$strInsert); } print_r($json); return json_encode($json); 在每个调用包含foreach的路由的浏览器上,它

我正在用Silex框架开发一个后端,我正在测试这段代码

foreach($P as $key=>$value)
    {
        $strInsert  =$key."=>".$value;      
        array_push($json,$strInsert);                 
    }
    print_r($json);
    return json_encode($json);
在每个调用包含foreach的路由的浏览器上,它都能很好地打印,并且不同的json验证器认为给出的输出格式良好。 在《邮递员》中,当我点击“pretty”Json时,它会显示
意外的“A”

在raw、html和其他视图选项上,json文档打印没有问题。 我应该继续为这个问题担心还是忽略它?
如果我不应该忽视它,有解决办法吗

在Silex framework上做了大量工作来构建我的后端之后,多亏了postman(一款chrome应用程序,非常适合测试http协议),我发现php以Json格式等待响应

    Example A :
    call route /path/getinfo/ with method get
    execute the code --> result=$app->SomeFunctionThatInterrogatesDB(param1...) **firing error
                         return result;
这里的交易是这样的:在somefunction中,您向db进行查询,它返回一行(或多行,取决于查询类型),PHP认为响应是用JSON构造的,但它不是,因此它会触发该错误。
意外的“A”只是意味着“嘿,我的json在哪里?我什么都不懂!”
修复或解决方法只是将结果封装在路由中的json格式中。

严格来说,使用
return$app->json(result)
更改
返回结果
。 这段代码基于silex,但即使您使用silex之外的其他框架,解决方案也是将最终结果字符串化为json格式

 |*Frontend*|  route request     |   *Backend*   | query     |*Database*|
 |          |------------------->|               |---------->|          |
 |          |    Response        | json(result)  |  array    |          |
 |          |<-------------------|<--------------|<----------|          |
|*前端*|路由请求|*后端*|查询|*数据库*|
|          |------------------->|               |---------->|          |
||响应| json(结果)|数组||

||您是否将JSON属性封装在JSON对象中?所以它以大括号开始和结束。通常情况就是这样,你能粘贴格式良好的json吗?很抱歉,现在才回复,我一直在忙着工作:像@Puya说的那样,json对象的封装很糟糕。谢谢你的回答