Postman show unexpected 'A' in json response , but json is well formed

瘦欲@ 提交于 2019-12-13 18:04:48

问题


I'm developing a backend with Silex framework and i'm testing this piece of code

foreach($P as $key=>$value)
    {
        $strInsert  =$key."=>".$value;      
        array_push($json,$strInsert);                 
    }
    print_r($json);
    return json_encode($json);

On every browser calling the route which contains the foreach it prints well, and the output given is considered well-formed by different json validators. In postman when i click on 'pretty' Json it shows Unexpected 'A'.
On raw,html and other views options the json document is print without problems. Should I keep worrying for this problem or just ignore it? If I shouldn't ignore it, is there a fix ?


回答1:


After a lot of work on Silex framework to build my backend, Thanks to postman (a chrome app,really handy for testing http protocols),I've figured out that php waits the response in a Json format.

    Example A :
    call route /path/getinfo/ with method get
    execute the code --> result=$app->SomeFunctionThatInterrogatesDB(param1...) **firing error
                         return result;

here's the deal : in that somefunction you make a query to the db and it returns a row (or multiple rows depending from the type of query),PHP thinks that the response is structured in JSON, but it is not, so it fires that error.
That unexpected 'A' just means "hey,where is my json? I can't understand nothing !"
The fix or the workaround, is just to encapsulate your result in json format inside the route.

To be strict change return result with return $app->json(result). This code is based on silex but even if you are using other framework out of silex, the solution is to stringify your final result in json format.Here is a little graph(call me davinci if you want) to understand better the flow.

 |*Frontend*|  route request     |   *Backend*   | query     |*Database*|
 |          |------------------->|               |---------->|          |
 |          |    Response        | json(result)  |  array    |          |
 |          |<-------------------|<--------------|<----------|          |

I hope that my answer can be of help to anyone.



来源:https://stackoverflow.com/questions/40149668/postman-show-unexpected-a-in-json-response-but-json-is-well-formed

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!