【问题标题】:Using JSON array in PHP在 PHP 中使用 JSON 数组
【发布时间】:2014-12-17 01:40:11
【问题描述】:

感谢您的反对。

我有一个 REST API,它返回 JSON 格式的任务列表,我将它解码成一个数组 使用:

$decoded = json_decode($curl_response,true); 

并且在使用该数组时遇到了麻烦。

编辑:抱歉修改问题,但 curl_response 是

{
    "error": true,
    "message": "Api key is misssing"
}

当我登录时,JSON 响应中有一个 api 密钥,我不知道如何进一步使用。在进一步调用 api 时需要该密钥进行身份验证。如何在我的请求标头中包含该 apikey 以进行进一步的 curl 调用?谢谢。

响应格式如下(使用 Chrome 中的高级 REST 客户端进行测试):

{
    error: false
    tasks: [5]
        0:  {
            id: 2
            task: "v@q.com"
            status: 0
            createdAt: "2014-10-21 21:42:48"
        }-
        1:  {
            id: 3
            task: "Inter Nam"
            status: 0
            createdAt: "2014-10-21 21:42:58"
        }-
        2:  {
            id: 4
            task: "Vamos"
            status: 0
            createdAt: "2014-10-21 21:43:04"
        }-
        3:  {
            id: 5
            task: "El Mundo"
            status: 0
            createdAt: "2014-10-21 23:12:33"
        }-
        4:  {
            id: 6
            task: "El Clasico"
            status: 0
            createdAt: "2014-10-21 23:12:45"
        }-
    -
}

我试图在数组 $decoded 中解码上述响应,然后我想在循环中显示每个任务,得到总数。任务..等--------------------------------(1) 使用 Count($decoded) 我得到 2 这显然是错误的,我也无法使用:

foreach($decoded as $task) {
    echo $task["task"];
}

如何实现(1)?感谢您的帮助。

【问题讨论】:

  • 你需要打开tasks项; foreach ($decoded['tasks'] as $task).
  • 发布 CURL 调用的原始响应,因为该数据结构不是有效的 JSON,这可能是您遇到问题的原因,或者您在粘贴问题之前以某种方式更改了它跨度>
  • @RiggsFolly 如何从 CURL 调用中获取原始响应?
  • 回显$curl_response
  • @RiggsFolly 谢谢。我这样做了,现在我必须在 curl 调用中将 api 密钥作为请求标头发送。所以,正如我所说,我只是在 url 末尾附加了 api 密钥,还是有其他方法呢?

标签: php arrays json api web


【解决方案1】:

在您尝试访问的内容之上还有另一个级别。试试这个:

$tasks = $decoded['tasks'];
foreach($tasks as $task) {
    echo $task["task"];
}

【讨论】:

  • 我相信你一定是对的,但它对我不起作用。
  • 我没有得到任何结果。如何检查我的 curl 响应是否正确?
  • 嗯,你已经说过没问题了。你可以直接回显$curl_response
  • 我以为我需要一些功能......是的,这是错误的 {"error":true,"message":"Api key is missing"}
  • 很抱歉,您能告诉我如何在 Curl 的请求标头中包含 api 密钥吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多