我正在尝试从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);
答案 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'];