我遇到的问题是我正在使用的API,在响应中有简单的文本和json对象,这是我可以有什么样的响应:
--uuid:ea9ca368-2f73-4669-aa94-028293937jhg
Content-Type: application/json;charset=UTF-8
Content-Transfer-Encoding: binary
Content-ID: <jsonInfos>
{"messages":[{"id":"30008","type":"OK","messageContent":"Some data..."}],"labelXmlReponse":"data","labelResponse":"data"}
--uuid:ea9ca368-2f73-4669-aa94-028293937jhg--
我只需要检索json对象。由于json之前和之后的文本,我无法对响应做json_decode()
。
我尝试使用正则表达式来捕获括号内的所有内容:
preg_match("/(\{(.*?)\})/", $res_curl, $output_array);
但这不起作用,因为它以第一个结束括号结束。
如何从响应中捕获json?
修改
正如评论中所说,这是我的调用代码,我正在使用cURL:
$ch = curl_init($url.$action);
curl_setopt( $ch, CURLOPT_POSTFIELDS, json_encode($requestParameter) );
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt($ch, CURLOPT_HEADER, false);
$res_curl = curl_exec($ch);
答案 0 :(得分:1)
你在使用cURL吗?只需将CURLOPT_HEADER
设置为false。