JSON Post PHP (TypeForm)

JSON Post PHP (TypeForm)

我以前从未使用过JSON,如果这是一个简单的请求,我深表歉意。

我有一个 webhook 设置,它向我发送 JSON Post(下面的示例)- 我想从 "text":"250252"{"label":"CE"}[ 中提取两个答案=17=]

{
  "event_id": "1",
  "event_type": "form_response",
  "form_response": {
    "form_id": "VpWTMQ",
    "token": "1",
    "submitted_at": "2018-05-22T14:11:56Z",
    "definition": {
      "id": "VpWTMQ",
      "title": "SS - Skill Change",
      "fields": [
        {
          "id": "kUbaN0JdLDz8",
          "title": "Please enter your ID",
          "type": "short_text",
          "ref": "9ac66945-899b-448d-859f-70562310ee5d",
          "allow_multiple_selections": false,
          "allow_other_choice": false
        },
        {
          "id": "JQD4ksDpjlln",
          "title": "Please select the skill required",
          "type": "multiple_choice",
          "ref": "a24e6b58-f388-4ea9-9853-75f69e5ca337",
          "allow_multiple_selections": false,
          "allow_other_choice": false
        }
      ]
    },
    "answers": [
      {
        "type": "text",
        "text": "250252",
        "field": {
          "id": "kUbaN0JdLDz8",
          "type": "short_text"
        }
      },
      {
        "type": "choice",
        "choice": {
          "label": "CE"
        },
        "field": {
          "id": "JQD4ksDpjlln",
          "type": "multiple_choice"
        }
      }
    ]
  }
}

目前我的 PHP 文件中有这个:

$data = json_decode(file_get_contents('php://input'));
$ID = $data->{"text"};
$Skill = $data->{"label"};

这不起作用,我得到的都是空的 - 非常感谢任何帮助,谢谢。

您需要查看您正在接收的 JSON 对象,以了解您在使用 json_decode 后接收的对象的结构,您想要获得的是 $data->form_response->answers, 所以你可以有一个更容易访问的变量:

$answers = $data->form_response->answers;

记住$answers是一个数组

因此,要实现您想要达到的目标,您可以这样做:

$data = json_decode(file_get_contents('php://input'));
$answers = $data->form_response->answers;
$ID = $answers[0]->text;
$Skill = $answers[1]->choice->label;