我正在解析json数据,其中id用作解析数据的条件,但它在if条件中不起作用
<?php
if(isset( $_GET['id']) && isset($_GET['city']))
{
$id=$_GET['id'];
$city=$_GET['city'];
}
$json = file_get_contents('../jsonfile/cities/'.$city.'.json')/deals.json?tsToken=US_AFF_0_201590_221707_0
$json_string = json_decode($json);
foreach($json_string->deals as $mydata)
{
if($mydata->id == $id) //does not work
{
foreach($mydata->options[0]->details as $option)
{
echo $option->description;
}
$ id是echo很好,但它在if条件下不起作用请帮帮我.....:)
答案 0 :(得分:0)
//试试这个
$json = file_get_contents($url);
$data = json_decode($json, TRUE);
$a = '{"a":1,"b":"test String"}';
$b = json_decode($a,true);
print_r($b);
使用json_decode传递时返回true,返回一个数组,你可以利用它进行比较。
答案 1 :(得分:0)
如果$ json_string-&gt; Deals是一个数组,您可以尝试将if条件更改为:if($ mydata [&#39; id&#39;] == $ id)。
虽然json_decode将一个对象作为容器返回,但并不是所有内容都必须是对象类型。