用PHP从url解码JSON

用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

您好,我是php中Json的新手。我有一个以json格式提供数据的web服务。 当我尝试使用这些数据时,我会将这些数据进行解码

这是我的密码:

 $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'}
是有效使用的示例。它不适用于任何类型的数组,仅适用于对象。