【问题标题】:PHP JSON Decode Curl Object Wrong ValuePHP JSON解码卷曲对象错误值
【发布时间】:2014-11-27 07:56:11
【问题描述】:

下面是我解析 REST API URL 的完整代码,以及我尝试做我需要它做的事情。我需要它做的是告诉我订阅 ID(在下面的示例中是“7”)。但是每次我调用它时,它都会简单地返回到期日期。问题是“7”总是会根据他们选择的客户和套餐而有所不同。所以我需要能够判断它是“7”、“8”还是“232”,并将其回显或分配给变量。我该怎么做呢?看不懂。

CURL 和 JSON 解码

$url = "HIDDEN";
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT, 4);
$json = curl_exec($ch);
if(!$json) {
    echo curl_error($ch);
}
curl_close($ch);
echo "<pre>";
print_r(json_decode($json));
echo "</pre>";

$obj = json_decode($json);
echo $obj->{'name_l'};
echo "<br />";
echo $obj->{'subscriptions'}->{7};

代码输出

标准类对象 ( [好的] => 1 [user_id] => 3 [名称] => 内森·布朗 [name_f] => 内森 [name_l] => 棕色 [电子邮件] => test@email.com [登录] => 用户名 [订阅] => stdClass 对象 ( [7] => 2014-10-03 ) ) Brown 2014-10-03

【问题讨论】:

  • 附注json_decode($json, TRUE) 将返回数组而不是对象。

标签: php json api curl stdclass


【解决方案1】:

不要被所有的绒毛弄糊涂了。您只想获取数组的第一个 key(类似地,您可以获得 current value):

reset($obj->subscriptions); // Just to be safe
$foo = key($obj->subscriptions); // 7
$bar = current($obj->subscriptions); // 2014-10-03

【讨论】:

  • 非常感谢!这完美!我很感激!
  • 好的,我对这个完全相同的主题还有另一个问题......如果我需要再发一篇文章,我不介意,但我现在如何才能得到回应的日期?我得到了订阅号,即“7”,但如何获取日期? (即:2014-10-03)
  • 如果您点击我提供的链接,您将在“另请参阅”部分找到答案。我已编辑我的答案以包含该信息。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-07-09
  • 1970-01-01
  • 2013-08-14
  • 1970-01-01
  • 2016-08-12
  • 2011-05-15
  • 2015-03-25
相关资源
最近更新 更多