【问题标题】:How to display a JSON API as an Array?如何将 JSON API 显示为数组?
【发布时间】:2014-01-19 14:25:55
【问题描述】:

我只是想将 API 响应显示为一个数组,但有问题,我没有找到它:

API 的回答:

{"status":"OK","minecrafts":[{"id":411,"ip":"2452453","name":"EdenCraft","port":23,"ram":512,"leaf_id":1522,"ftp_password":"1231235312","subscription_end":"2014-02-06T19:56:29.000Z"}]}

我的 PHP 代码:

<?php
$url = "http://api.edenservers.fr/minecraft?user_id=id&api_key=key";
$data = file_get_contents($url); // Opening the Query URL
$data = json_decode($data, true); // Decoding the obtained JSON data
if(count($data) > 0) {
    foreach($data as $rank => $donnees) {
        echo "<u>" . $rank ."</u> : ". $rank;
        echo "<br />";
    }
}
else {
    echo "Rien n'a &eacute;t&eacute; trou&eacute;.";
}
?>

这就是我的仪表板上显示的内容:

status : status

minecrafts : minecrafts

感谢您的帮助!

【问题讨论】:

    标签: php json api decode


    【解决方案1】:

    试试

    foreach($data as $key=>$val){
      if(is_array($val)){
           foreach($val[0] as $key1=>$val1){
              echo "<u>" . $key1 ."</u> : ". $val1;
           } 
       }else{
               echo "<u>" . $key ."</u> : ". $val;
       }
    }
    

    【讨论】:

      【解决方案2】:

      变化:

      echo "<u>" . $rank ."</u> : ". $rank
      

      到:

      echo "<u>" . $rank ."</u> : ". print_r( $donnees, TRUE )
      

      如果您想要反转值,则反之亦然。但问题在于在这两个地方都使用$rank

      【讨论】:

      • 看起来像是一个多维数组,所以$donnees本身在某些情况下仍然是一个数组而不是字符串。我在上面所做的编辑应该可以解决这个问题,尽管您必须根据您希望输出格式的方式对其进行修改(例如可能包括一个嵌套的 foreach() 来循环它)。
      猜你喜欢
      • 2020-07-03
      • 1970-01-01
      • 2018-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-12
      • 1970-01-01
      • 2012-04-15
      相关资源
      最近更新 更多