我正在使用rest API我需要解析一个永远改变的json结果

时间:2016-03-28 22:05:24

标签: php json rest

好的,所以我在这里使用一个名为strichliste的休息api 我正在创建一个用户信用支付系统

我试图通过用户名问题来获取用户余额 我的restapi我只能通过其用户标识来获得空白

我创建了一些php,它使用下面的内容来抓取所有当前用户以及相应的ID和余额

function getbal(){
    // Get cURL resource
    $curl = curl_init();
    // Set some options - we are passing in a useragent too here
    curl_setopt_array($curl, array(
                                 CURLOPT_RETURNTRANSFER => 1,
                                 CURLOPT_URL => 'https://example.io:8081/user/'
                                 )
                      );
    // Send the request & save response to $resp
    $resp = curl_exec($curl);
    // Close request to clear up some resources
    curl_close($curl);
    print_r($resp);
}

这是我在主要php脚本中使用后得到的respinse

<? getbal(); ?>

结果---#

{  
   "overallCount":3,
   "limit":null,
   "offset":null,"entries":[
                            {"id":1,
                             "name":"admin",
                             "balance":0,
                             "lastTransaction":null
                            },
                            {"id":2,
                             "name":"pghost",
                             "balance":0,
                             "lastTransaction":null
                            },
                            {"id":3,
                             "name":"sanctum",
                             "balance":0,
                              "lastTransaction":null
                             }
                           ]
  }

正如您所看到的,目前只有3个用户,但每天都会增长,因此脚本需要适应越来越多的用户

在我的php脚本中,我有一个当前登录使用的var,例如

$user = "sanctum";

我想要一个将使用gatbal()输出的PHP脚本;并且只输出给定用户的行,在这种情况下为sanctum

我想让它输出特定用户的jsondecode中的行

{"id":3,"name":"sanctum","balance":0,"lastTransaction":null}

任何人都可以提供帮助

1 个答案:

答案 0 :(得分:1)

$user = "sanctum";
$userlist = getbal();


function findUser($u, $l){
    if(!empty($l['entries'])){
      foreach($l['entries'] as $key=>$val){
         if($val['name']==$user){
             return $val;
         }
      }
    }
}

这样,一旦你有了列表和用户,你就可以通过插入用户列表和用户来调用findUser()。

 $userData = findUser($user, $userlist);

但是,我建议找一种方法让服务器只返回您要查找的用户,而不是整个列表,然后根据用户名查找。但这是另一次讨论的另一次。