Я новичок в JSON, поэтому я должен задать вам, возможно, очень простые вопросы.
Я пытался искать вокруг, но не нашел ничего, что я мог бы получить на работу.
Я вызвал API и получил данные в формате JSON.
И теперь приходит моя проблема с его анализом через php, он «ничего не найдет». Мой код выглядит так:
$opts = array(
'http'=>array(
'method'=>"GET",
'header'=>"Accept: application/vnd.travify.v1+json\r\n")
);
$context = stream_context_create($opts);
$url = 'http://oda.ft.dk/api/Sag?$select=titel,Sagskategori/kategori&$expand=Sagskategori';
$output = file_get_contents($url, false, $context);
$string = file_get_contents($url, false, $context);
$result = json_decode($string, true);
$i = -1;
foreach ($result as $data) {
$i++;
echo "#";
echo $i;
echo "<br>";
echo "<b>Test 1:</b>";
echo "<br>";
if(!empty($result[$i]['value']['Sagskategori']['kategori'])){
echo $result[$i]['value']['Sagskategori']['kategori'];
}else{
echo "Intet fundet.";
}
echo "<hr>";
}
Код JSON можно найти здесь: http://oda.ft.dk/api/Sag?$select=titel,Sagskategori/kategori&$ Расширение = Sagskategori
Может кто-нибудь из вас увидит мою ошибку в коде и поможет мне выбрать правильное направление :-)?
Пожалуйста, замените
foreach ($result as $data) {
от
foreach ($result["value"] as $data) {
Теперь вы можете перебирать массив значений и получать всю информацию из $ data.
Вам не нужно использовать $ i, $ data содержит правильное значение $ result [$ i]
foreach ($result["value"] as $data) {
echo "#";
echo "<br>";
echo "<b>Test 1:</b>";
echo "<br>";
if(!empty($data['Sagskategori']['kategori'])){
echo $data['Sagskategori']['kategori'];
}else{
echo "Intet fundet.";
}
echo "<hr>";
}
JSON начинается так:
{
"odata.metadata":"...snip...","value":[
{
Итак, массив внутри value
объект.
Правильный код должен быть:
foreach ($result['value'] as $data) {
// snip
if(!empty($result['value'][$i]['Sagskategori']['kategori'])){
echo $result['value'][$i]['Sagskategori']['kategori'];
}
Кроме того, внутри цикла, $result['value'][$i]['Sagskategori']['kategori'];
строго так же, как использование $data['Sagskategori']['kategori'];
,