我试图尽可能地解释这个,请问我现在还不清楚。 我正在使用API获取有关传感器的大量信息。
这是类
中的方法public function getSensors()
{
$params = array();
return json_decode($this->consumer->sendRequest(constant('REQUEST_URI').'/sensors/list', $params, 'GET')->getBody());
在我的 index.php
中$params = array('id'=> XXXXXX);
$response = $consumer->sendRequest(constant('REQUEST_URI').'/sensor/info', $params,'GET');
echo json_decode($response->getBody());
这给了我一大堆这样的信息:
{"id":"xxxxx","client":"xxxx","name":"xxxxx","lastUpdated": xxxx}
我只想使用某些此信息。
这是getBody()方法 -
public function getBody() {
if (self::METHOD_POST == $this->method && (!empty($this->postParams) || !empty($this->uploads))) {
if (0 === strpos($this->headers['content-type'], 'application/x-www-form-urlencoded')) {
$body = http_build_query($this->postParams, '', '&');
if (!$this->getConfig('use_brackets')) {
$body = preg_replace('/%5B\d+%5D=/', '=', $body);
}
// support RFC 3986 by not encoding '~' symbol (request #15368)
return str_replace('%7E', '~', $body);
} elseif (0 === strpos($this->headers['content-type'], 'multipart/form-data')) {
require_once 'HTTP/Request2/MultipartBody.php';
return new HTTP_Request2_MultipartBody(
$this->postParams, $this->uploads, $this->getConfig('use_brackets')
);
}
}
return $this->body;
}
答案 0 :(得分:0)
如果您使用的是API,则无法控制您获得的信息,除非API定义了这样做的方法。如果您正在阅读传感器,那么这不太可能是一种选择。
然而,你可以忽略你不需要的东西。
例如:
$myArray = json_decode('{"id":"xxxxx","client":"xxxx","name":"xxxxx","lastUpdated": xxxx}');
$mySubset = array($myArray['id'], $myArray['lastUpdated']);
我只是用json_decode
来说明这一点。从您的注释看起来getBody()
返回一个数组,但您报告的错误消息指向一个对象。
对于数组,您可以使用
$myResp = $response->getBody();
$myId = $myResp['id'];
对于对象,您可以使用
$myResp = $response->getBody();
$myId = $myResp->id;
道歉,如果我没有达到这个标准 - 我在这里开了一点盲目!