简体   繁体   English

使用PHP解析API返回的JSON数据

[英]Parse JSON data returned by API using PHP

I am using the API here: http://developers.livechatinc.com/rest-api/#!chats 我在这里使用API​​: http//developers.livechatinc.com/rest-api/#!chats

I am trying to parse data being returned through my LiveChat service provider. 我正在尝试解析通过LiveChat服务提供商返回的数据。 Here is what is returned after a successful API call: 以下是成功调用API后返回的内容:

object(stdClass)#3 (3) {
  ["chats"]=>
  array(1) {
    [0]=>
    object(stdClass)#4 (17) {
      ["type"]=>
      string(4) "chat"
      ["id"]=>
      string(10) "MUQM3RLYBV"
      ["visitor_id"]=>
      string(22) "S1381706997.d8b6736611"
      ["agents"]=>
      array(1) {
        [0]=>
        object(stdClass)#5 (2) {
          ["display_name"]=>
          string(17) "Display Name"
          ["email"]=>
          string(30) "Email"
        }
      }
      ["supervisors"]=>
      array(0) {
      }
      ["rate"]=>
      string(10) "rated_good"
      ["duration"]=>
      int(50)
      ["group"]=>
      array(1) {
        [0]=>
        int(1)
      }
      ["started"]=>
      string(25) "Sun, 10/13/13 06:30:39 pm"
      ["pending"]=>
      bool(false)
      ["tags"]=>
      array(0) {
      }
      ["prechat_survey"]=>
      array(3) {
        [0]=>
        object(stdClass)#10 (3) {
          ["key"]=>
          string(5) "Name:"
          ["value"]=>
          string(12) "Demo Name"
          ["id"]=>
          string(18) "138133839826202879"
        }
        [1]=>
        object(stdClass)#11 (3) {
          ["key"]=>
          string(7) "E-mail:"
          ["value"]=>
          string(14) "demo@gmail.com"
          ["id"]=>
          string(18) "138133839826305342"
        }
        [2]=>
        object(stdClass)#12 (3) {
          ["key"]=>
          string(17) "Choose a Subject:"
          ["value"]=>
          string(4) "Math"
          ["id"]=>
          string(18) "138133839826304607"
        }
      }
      ["started_timestamp"]=>
      int(1381707039)
      ["ended_timestamp"]=>
      int(1381707089)
      ["ended"]=>
      string(25) "Sun, 10/13/13 06:31:29 pm"
    }
  }
  ["total"]=>
  int(1)
  ["pages"]=>
  int(1)
}

I am having a really hard time grabbing certain pieces of data I need to obtain from the returned data. 我很难从要获取的数据中获取某些数据。 Here is the code I have been using but it does not work: 这是我一直在使用的代码,但它不起作用:

<?php
require_once('lib/LiveChat_API.php');

try {
    $LiveChatAPI = new LiveChat_API();
    $output = $LiveChatAPI->chats->get();
    $array = json_decode($output, true); //Saves the returned JSON object as a multi-dimensional array

    echo $array['prechat_survey']['E-mail'];

} catch (Exception $e) {
    die($e->getCode().' '.$e->getMessage());
}
?>

For example, How would I get the value of "E-mail" under the "prechat_survey"? 例如,如何在“ prechat_survey”下获取“ E-mail”的值?

Would this work? 这行得通吗?

$array['prechat_survey'][1]['value'];

Update 更新

Looks like you are already getting an object, not a JSON string... 看起来您已经在获取对象,而不是JSON字符串...

Try and see if this works: 尝试看看是否可行:

try {
    $LiveChatAPI = new LiveChat_API();
    $output = $LiveChatAPI->chats->get();

    echo $output->prechat_survey[1]->value;

} catch (Exception $e) {
    die($e->getCode().' '.$e->getMessage());
}

Upadte2 I see, there's a chats object I din't see Upadte2我知道了,有一个聊天对象我没看到

Try this: 尝试这个:

echo $output->chats[0]->prechat_survey[1]->value;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM