用PHP从url解码JSON
您好,我是php中Json的新手。我有一个以json格式提供数据的web服务。 当我尝试使用这些数据时,我会将这些数据进行解码 这是我的密码:用PHP从url解码JSON,php,json,Php,Json,您好,我是php中Json的新手。我有一个以json格式提供数据的web服务。 当我尝试使用这些数据时,我会将这些数据进行解码 这是我的密码: $url = "http://www.webinsurer.gr/....; $json = json_decode(@file_get_contents($url), true); 如果我进行调试,我会看到我获取的数据: [file] => C:\xampp\htdocs\development.insurancemarket.gr
$url = "http://www.webinsurer.gr/....;
$json = json_decode(@file_get_contents($url), true);
如果我进行调试,我会看到我获取的数据:
[file] => C:\xampp\htdocs\development.insurancemarket.gr\mvc\protected\models\Ratingsmail.php
[line] => 18
[data] => Array
(
[0] => Array
(
[POL_EXPIREDATE] => 2014-05-19 12:00:00
[INCO_IWCODE] => 41
[INCO_DESC] => MAPFRE ASISTENCIA
[PACK_IWCODE] => 0
[PACK_DESC] =>
[OFFERCODE] =>
[PAYMENTCODE] =>
)
[1] => Array
(.....
但我现在不知道如何使用这些数据。当我尝试这个:
$b= $json->{1}->{'INCO_IWCODE'};
Debug::debuger($b);
结果一无所获
怎么了?抱歉发了这么长的帖子。
您正在将json转换为关联数组。你需要使用
$b = $json["data"][1]["INCO_IWCODE"];
当将json_decode上的第二个参数设置为true时,您主动请求以关联数组而不是对象的形式返回数据。这就是你的代码不起作用的原因。$a=$json[0]->INCO_IWCODE
这对我的人有用。谢谢大家 show us console.log($json),它将输出到firebug/developer tools控制台(在任何浏览器中都是f12)“if I make debug”和什么代码?这是打印($json)?如果是这样,您需要使用
$json['data'][0]['INCO_IWCODE']
。请参阅我的答案@BartłomiejWach What?您无法在javascript控制台上调试PHP变量。请从json解码行中删除“,true”。它不起作用结果是:数组([文件]=>C:\xampp\htdocs\development.insurancemarket.gr\mvc\protected\models\Ratingsmail.PHP[行]=>30[数据]=>)@user3438570它不使用什么?你的格式有点难读。请在answerI中查看我的演示。我获取了您的代码,但在调试中,数据再次为空。我现在不知道为什么。我删除了true,并在调试中再次删除了数据empty@theodosis$json->data[1]->INCO_IWCODE
-您使用的{…}
是错误的,在PHPAlso中有不同的含义,Dan说:-)来详细说明:{…}是动态引用,例如,如果您想要的变量取决于计算结果,或者当变量的命名与PHP语法不兼容时:$obj->{$myvar}
或$obj->{'invalid-variable-name'}
是有效使用的示例。它不适用于任何类型的数组,仅适用于对象。