[英]Why does json_decode not working?
我正在尝试通过JSON从下面的代码中获取c_user, xs, fr
和date
值的值,并将其保存到数据库中,但是在我使用的代码中,这不起作用。
$data = $_GET["user"];
$data = json_decode($data);
$datr = $data->datr;
$xs = $data->xs;
$fr = $data->fr;
$c_user = $data->c_user;
$token2 = $data->access_token;
$id = $data->uid;
这是Json代码
{
"session_key" : "5.rWdMmED7nybZ1w.1513220229.45-100007001746590",
"uid" : 100007001746590,
"secret" : "b3f2dac4a948407864ff2e4e2d8feebf",
"access_token" : "EAAAAAYsX7TsBAGSNv9YET43NxPk7PZBt1gTP0ipqQpb7ojzgn9pFf8hOLTg6V1R8IAv0y5TYgMhDlbCA0eHUN5aPOYw1DgA4c7vTgscbzY0tZALxpBk1tvIXPAisZBBZBzkyimkBurkU3iz0KmXoLQU1KY7tjxrgl7Wvxf5GwZBQbDFX4m5kMsYYDZB9UwIyl6YJA12Ac2ZBmcQBKAfOotc",
"machine_id" : "hegxWhFD-5BKWnhTe3exWvAG",
"session_cookies" : [
{
"name" : "c_user",
"value" : "100007001746590",
"expires" : "Fri,
14 Dec 2018 02 : 57 : 09 GMT",
"expires_timestamp" : 1544756229,
"domain" : ".facebook.com",
"path" : "\/",
"secure" : true
},
{
"name" : "xs",
"value" : "45 : rWdMmED7nybZ1w : 2 : 1513220229 : 13473 : 4832",
"expires" : "Fri,
14 Dec 2018 02 : 57 : 09 GMT",
"expires_timestamp" : 1544756229,
"domain" : ".facebook.com",
"path" : "\/",
"secure" : true,
"httponly" : true
},
{
"name" : "fr",
"value" : "0DfY4nJ3NUUeFKIUG.AWX4RKAQ0wBcl677F8jXJcCZ7Dc.BZj9JZ.fD.Fox.0.0.BaMeiF.AWXzlwrU",
"expires" : "Fri,
14 Dec 2018 02 : 57 : 09 GMT",
"expires_timestamp" : 1544756229,
"domain" : ".facebook.com",
"path" : "\/",
"secure" : true,
"httponly" : true
},
{
"name" : "datr",
"value" : "hegxWhFD-5BKWnhTe3exWvAG",
"expires" : "Sat,
14 Dec 2019 02 : 57 : 09 GMT",
"expires_timestamp" : 1576292229,
"domain" : ".facebook.com",
"path" : "\/",
"secure" : true,
"httponly" : true
}
],
"confirmed" : true,
"identifier" : "7250492401"
}
注意:我成功获取了$token2
和$id
。 如何获取xs, fr, date, c_user
?
对于您所有丢失的键,该错误似乎都是一致的。 以xs
为例。 您编写的代码将查找标记为xs
的子元素:
$xs = $data->xs;
但这在您的JSON文档中不存在。 相反,您需要解析session_cookies
数组以查找name
键设置为xs
的元素。 此方法在先前的答案中有所介绍。
哦,我明白了。 您要询问的值是JSON 数组的元素,具有“名称”值,例如“ xs”和“ fr”。 您将需要遍历数组以解压缩它。
$cookies = [];
foreach ($data->session_cookies as $cookie) {
$cookies[$cookie->name] = $cookie->value;
}
$xs = $cookies['xs'];
// etc.
大概这就是您要寻找的。 我猜。
$data = $_GET["user"];
$data = json_decode($data);
$c_user = [];
foreach($data->session_cookies as $key => $val)
{
$c_user[] = $val['name'];
}
现在,在c_user
数组中,您具有所需的值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.