使用ZEND框架和/或PHP接收JSON有效负载

ken*_*800 14 json zend-framework http-headers

我从我网站的内部网页/ asset/setjob上的网络服务收到一个JSON有效负载.以下是发布到/ asset/setjob的JSON有效负载:

[{"job":{"source_filename":"beer-drinking-pig.mpg","current_step":"waiting_for_file","encoding_profile_id":"nil","resolution":"nil","status_url":" http://example.com/api/v1/jobs/1.json","id":1,"bitrate":"nil","current_status ":"等待文件","current_progress":"nil" ,"remote_id":"my-own-remote-id"}}]

此有效内容会向此页面发布一次.该页面不是用于查看,而是解析id和current_status的JSON对象,以便我可以将其插入到数据库中.我正在使用Zend框架.

我如何在Zend中收到此有效负载?我是否_GET ['json']?$ _ POST [ '工作']?这些似乎都不起作用.我基本上需要将此有效负载分配给php变量,以便我可以操作它.

我试过了:

$ jsonStrGet = var_dump($ _ GET); $ jsonStrPost = var_dump($ _ POST);

我试过了:$ response = $ this-> getResponse(); $ body = $ response-> getBody();

大段引用

任何帮助将非常感激!谢谢.

isc*_*odv 35

可以通过这种方式获取有效负载数据(在您的操作方法中):

$body = $this->getRequest()->getRawBody();
$data = Zend_Json::decode($body);
Run Code Online (Sandbox Code Playgroud)

$ body将包含您的原始JSON字符串:[{"job":{"source_filename":...}]和$ data变量将包含在有效负载中传递的已解码JSON数据.

  • ZF2:`$ this-> request-> getContent();` (13认同)

Kev*_*ley 0

不确定您在问什么,但要将 JSON 字符串转换为对象,请使用Zend_Json::decode($foo)?