用PHP从JSON获取数据

时间:2014-07-13 17:47:55

标签: php json get

我正在尝试从JSON页面获取数据: http://www.oref.org.il/WarningMessages/alerts.json

我收到错误。

我如何获得"数据"来自JSON的数组?

这是我正在做的一个例子:

$homepage = file_get_contents('http://www.oref.org.il/WarningMessages/alerts.json');
$result   = json_decode($result);
$result   = utf8_encode($result); 
print_r($result);

5 个答案:

答案 0 :(得分:2)

json_encode返回一个对象(如果给出第二个参数true,则返回一个关联数组)。要获取data数组,您需要使用属性访问器:

$homepage = file_get_contents('http://www.oref.org.il/WarningMessages/alerts.json');
$result = json_decode($homepage);
$data = $result->data;
print_r($data);

如果您需要在UTF8中对$data数组进行编码,请使用:

$data = array_map('utf8_encode', $result->data);

要获得标题,请使用:

$title = utf8_encode($data->title);

答案 1 :(得分:1)

你可以这样做:

$result = file_get_contents('http://www.oref.org.il/WarningMessages/alerts.json');
$result = json_decode($result);
print_r($result->data);

答案 2 :(得分:0)

首先,您是第一个json_decode($result);,但在此行之前尚未声明$result

其次,代码的逻辑顺序是完全错误的:

$result = file_get_contents('http://www.oref.org.il/WarningMessages/alerts.json');
$result = utf8_encode($result); // encode the data before decoding json

$result = json_decode($result, true); // specify true to get an associated array

print_r($result);

答案 3 :(得分:0)

$ result = file_get_contents(" http://www.oref.org.il/WarningMessages/alerts.json");

 $result = iconv('UTF-16', 'UTF-8', $result);
 $json = json_decode($result);
 echo $json->id;
 echo $json->title;

答案 4 :(得分:0)

Test.json:

{
    "John":{
        "name":"Json"
    },
    "James":{   
        "status":"Active",
        "age":56,
        "count":10,
        "progress":0.0029857,
        "bad":0
    }
}

json.php:

$result= file_get_contents("test.json");
$get_data = json_decode($result, true);

echo $get_data['John']['name'].'<br/>';
echo $get_data['James']['age'];