С помощью запроса API получите ответ сервера в JSOn, как это в одной строке:
{"resultsTotal":3,"resultsPage":-1,"resultsPageSize":-1,"results":[{"id":1998425622,"name":"Regionale Mentions_Branche","type":"search string","creationDate":"2015-08-21T15:13:58.226+0000","lastModificationDate":"2015-08-21T15:13:58.226+0000","lastModifiedUsername":"[email protected]","lockedQuery":false,"lockedByUsername":null},{"id":1998422533,"name":"HTP_Sponsoring","type":"search string","creationDate":"2015-08-18T08:53:38.136+0000","lastModificationDate":"2015-08-18T08:53:38.136+0000","lastModifiedUsername":"[email protected]","lockedQuery":false,"lockedByUsername":null},{"id":1998422529,"name":"HTP_Brand Mentions","type":"search string","creationDate":"2015-08-18T08:41:32.699+0000","lastModificationDate":"2015-08-18T14:42:19.977+0000","lastModifiedUsername":"[email protected]","lockedQuery":false,"lockedByUsername":null}]}
поэтому я использую json_decode для получения массива.
теперь я хочу проанализировать массив, потому что мне нужен только «id»: xxxxxxxx, а «имя» - мой код:
$webservice = 'http://newapi.brandwatch.com/projects/';
$kundenId = $_POST["kunden"];
$key = "?access_token=XXXXXXXXX";
$onlySdate = $_POST["startdate"];
$onlyEdate = $_POST["enddate"];
$startdate = "&startDate=".$onlySdate ;
$enddate = "?endDate=" .$onlyEdate ;
$url = $webservice . $kundenId . "/queries/summary".$key;
$domainRequest = $url;
//header("Location:$domainRequest");
$data = array();
$options = array(
'http' => array(
'header' => "Content-type: application/x-www-form-urlencoded\r\n" .
'Authorization: Basic ' . BASIC_AUTH,
'method' => 'GET',
'content' => http_build_query($data)
)
);
$context = stream_context_create($options);
$result = file_get_contents($domainRequest, false, $context);
$array = json_decode($result, true);
//echo count ($result);
//echo "<br>";
print_r ($array);
если я хочу получить только одну запись массива, я не получу ответа или без истины в, json_decode ($result);
я получу фатальную ошибку: невозможно использовать объект типа stdClass как массив в / data / kunden / cylab / BH / produktion / web / htdocs_final / brandwatch / brandwatch.php в строке 31.
Что мне делать? чтобы увидеть только одну запись в массиве и как ее разобрать? Спасибо за помощь!
Если вы действительно получаете этот json-код из запроса и декодируете его с помощью
$array = json_decode($result, true);
вы получите (ассоциативный) массив, который имеет ту же структуру, что и строка json (без true
значения вы получите объекты, поэтому вы получили Fatal Error). В этом случае вы можете просто получить доступ к его полям, например:
foreach ($array["results"] as $result) {
echo "id=" . $result["id"] . ", name=" . $result["name"] . "\n";
}
давая результат:
id=1998425622, name=Regionale Mentions_Branche
id=1998422533, name=HTP_Sponsoring
id=1998422529, name=HTP_Brand Mentions
Эта статья взята из Интернета, укажите источник при перепечатке.
Если есть какие-либо нарушения, пожалуйста, свяжитесь с[email protected] Удалить.
я говорю два предложения