我正在使用cURL和REST来访问数据库和查询搜索,当我使用echo $response
时,我收到以下响应:
HTTP/1.1 200 OK Date: Fri, 05 Aug 2016 06:53:02 GMT Server: Apache Content-Language: en-US RNT-Time: D=58292 t=1470379982660626 RNT-Machine: 128.65 Transfer-Encoding: chunked Content-Type: application/json { "items": [ { "tableName": "Country", "count": 1, "columnNames": [ "id" ], "rows": [ [ "12" ] ] } ], "links": [ { "rel": "self", "href": "https://test.cust.com/services/rest/connect/v1.3/queryResults?query=select%20ID%20from%20CO.Country%20where%20CO.Country.Country=%27USA%27" }, { "rel": "canonical", "href": "https://test.cust.com/services/rest/connect/v1.3/queryResults" }, { "rel": "describedby", "href": "https://test.cust.com/services/rest/connect/v1.3/metadata-catalog/queryResults", "mediaType": "application/schema+json" } ] }
我尝试使用JSON_decode()
但到目前为止我无处可去,我怎么能在这里得到我的参数?更具体地说," id"值。
答案 0 :(得分:1)
如果我找到你,你有两个选择:
curl_setopt($ch, CURLOPT_HEADER, 0)
\r\n\r\n
打破您的回复,您将获得header
和body
list($header, $body) = explode("\r\n\r\n", $response, 2)
答案 1 :(得分:1)
此处发布的响应似乎是发送到客户端浏览器的服务器响应,
所以,您几乎没有解析此数据的选项
如果必须使用PHP解析此响应,那么您可以尝试使用PHP中的parse_str()
解析数据。
if (FALSE !== (stripos($response, '{'))) {
$data = trim(substr($response, stripos($response, '{')));
$data_arr = array();
parse_str($data, $data_arr);
print_R($data_arr);
//Digging down using parse_str() in php
} else {
echo "No data found.";
}
使用客户端javascript / jquery / client端脚本从浏览器的响应中解析json。
答案 2 :(得分:0)
您不需要使用JSON_decode()。
使用:
$obj = $_POST['items']; // for post
获取:
$obj = $_GET['items'];
答案 3 :(得分:0)
在@evilive的帮助下,我能够让它发挥作用:
接收标题的1个回合curl_setopt($ ch,CURLOPT_HEADER,0)
2- $test=$res->items[0]->rows[0];
echo $test[0];
答案 4 :(得分:-2)
$response;//Suppose your respond is this.
$obj = json_decode($response);
然后您可以访问您的参数。 例: $ obj->项目