如何在PHP中使用收到的JSON

时间:2013-08-08 09:49:40

标签: php json post

我正在阅读集成API,它说它将以这种格式发送请求:

content-type: application/json
accept: application/json
x-gsc-api-key: lRDs8NfsVTmHD8SC1234

{ 
  "name"      : "testuser",
  "password"  : "098f6bcd4621d373cade4e832627b4f6",
  "reference" : "b86de61-af20-4c47-af9a-6f2edeebc4fe" 
}

我想用PHP服务请求。我知道其他一些帖子也会问同样的问题,但他们是通过AJAX方法发送请求的。我不知道请求将以哪种方式发送。

我可以引用变量$ _POST ['name']和$ _POST ['password']来获取值吗?或者我需要调用json_decode($ _ POST)?

这个信息是否足以编写一个服务请求的PHP脚本?

任何帮助都将不胜感激。

5 个答案:

答案 0 :(得分:2)

不,您不能直接使用$_POST。您必须手动提取响应正文json_decode并处理结果。但这很容易做到:

$data = json_decode(file_get_contents('php://input'));

echo $data->name;

答案 1 :(得分:0)

$json = file_get_contents('php://stdin');

答案 2 :(得分:0)

您必须为此使用json_decode()函数(http://php.net/manual/en/function.json-decode.php

答案 3 :(得分:0)

不确定我是否正确阅读了问题但是>。>

$json = '{"name":"testuser","password":"098f6bcd4621d373cade4e832627b4f6","reference":"b86de61-af20-4c47-af9a-6f2edeebc4fe"}';
$data = @json_decode($json);

$name = $data->name;
$password = $data->password;
$ref = $data->reference;
   echo "${name} ${password} ${ref}";

或使用如下的真实。 。

$json = '{"name":"testuser","password":"098f6bcd4621d373cade4e832627b4f6","reference":"b86de61-af20-4c47-af9a-6f2edeebc4fe"}';

$data = @json_decode($json, true);


$name = $data['name'];
$password = $data['password'];
$ref = $data['reference'];
   echo "${name} ${password} ${ref}";

答案 4 :(得分:0)

不 - 你不能 - 但你可以像这样将JSON转换为$_POST

<?php
    $_POST = array_merge($_POST, json_decode(file_get_contents("php://stdin"), true));
?>