5

我有一个 JSON 文件,我想用 JSON 打印该对象:

JSON

[{"text": "Aachen, Germany - Aachen/Merzbruck (AAH)"}, {"text": "Aachen, Germany - Railway (ZIU)"}, {"text": "Aalborg, Denmark - Aalborg (AAL)"}, {"text": "Aalesund, Norway - Vigra (AES)"}, {"text": "Aarhus, Denmark - Aarhus Airport (AAR)"}, {"text": "Aarhus Limo, Denmark - Aarhus Limo (ZBU)"}, {"text": "Aasiaat, Greenland - Aasiaat (JEG)"}, {"text": "Abadan, Iran - Abadan (ABD)"}]

我尝试过以下方法,

<?php   
  $jsonurl='http://website.com/international.json'; 
  $json = file_get_contents($jsonurl,0,null,null);  
  $json_output = json_decode($json);        
  foreach ($json_output as $trend)  
  {         
   echo "{$trend->text}\n";     
  } 
?>

但它没有用:

致命错误:在第 5 行的 /home/dddd.com/public_html/exp.php 中调用未定义函数 var_dup()

谁能帮我理解我做错了什么?

4

5 回答 5

6
<?php   

  $jsonurl='http://website.com/international.json'; 
  $json = file_get_contents($jsonurl,0,null,null);  
  $json_output = json_decode($json, JSON_PRETTY_PRINT); 
  echo $json_output;
?>

通过使用JSON_PRETTY_PRINT你将你的 json 转换为漂亮的格式,使用 json_decode($json, true) 不会将你的 json 重新格式化为 PRETTY 格式的输出,你也不必在所有键上运行循环来再次导出相同的 JSON 对象,你也可以使用那些常量,它们可以在导出之前清理您的 json 对象。

json_encode($json, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES)
于 2016-03-18T13:06:30.650 回答
3

利用

$json_output = json_decode($json, true);

默认情况下 json_decode 给出 OBJECT 类型,但您尝试将其作为数组访问,因此传递 true 将返回一个数组。

阅读文档: http: //php.net/manual/en/function.json-decode.php

于 2013-06-25T08:57:46.827 回答
0

试试这个代码:

<?php   
  $jsonurl='http://website.com/international.json'; 
  $json = file_get_contents($jsonurl,0,null,null);  
  $json_output = json_decode($json, true);        
  foreach ($json_output as $trend){         
   echo $trend['text']."\n";     
  } 
?>

谢谢,迪诺

于 2013-06-25T09:02:01.290 回答
0
$data=[{"text": "Aachen, Germany - Aachen/Merzbruck (AAH)"}, {"text": "Aachen, Germany - Railway (ZIU)"}, {"text": "Aalborg, Denmark - Aalborg (AAL)"}, {"text": "Aalesund, Norway - Vigra (AES)"}, {"text": "Aarhus, Denmark - Aarhus Airport (AAR)"}, {"text": "Aarhus Limo, Denmark - Aarhus Limo (ZBU)"}, {"text": "Aasiaat, Greenland - Aasiaat (JEG)"}, {"text": "Abadan, Iran - Abadan (ABD)"}]
$obj = json_decode($data);
$text = $obj[0]->text;

这将起作用。

于 2013-09-20T15:52:33.477 回答
0

JSON_FORCE_OBJECT在您的 json 调用中,例如:

$obj = json_decode($data);

而是这样写:

$obj = json_decode($data, JSON_FORCE_OBJECT);
于 2020-02-19T13:32:04.463 回答