Im новый для json, поэтому я должен спросить вас, может быть, очень простые вопросы. Я пробовал искать, но не нашел ничего, что мог бы работать. Я назвал API и получил данные в json. И теперь моя проблема, анализируя ее через мой php, она «ничего не найдет». Мой код выглядит следующим образом:Как разобрать json в php с url
$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&$expand=Sagskategori
Может кто-нибудь из вас увидеть мою неудачу в коде, и получить меня на правильном пути :-)?
quick side note - вы инициализируете '$ i'' '' '' 'и затем увеличиваете это как первая вещь в вашем 'foreach', чтобы сделать это' 0'? Это частично логично. Почему бы не включить его как '0', а затем увеличить в качестве последней операции в вашем' foreach'? –
Попробуйте выполнить 'var_dump ($ result)' или 'print_r ($ result)' перед тем, как сделать цикл 'foreach()', чтобы увидеть, как выглядит ваша переменная результата. Главное, что я сначала проверил, это то, что вы возвращаете итеративный объект. Я думаю, вы просто вернетесь к одному объекту, поэтому вся идея цикла может оказаться неправильным. Первое значение в вашем JSON не является массивом. * edit * Я вижу пару ответов в этих строках. Упреки для них. :) – jmbertucci