我有一个问题是使用PHP获取Json数据。我有一个包含JSON数据的URL,如下所示。
{
"Profile":{
"email":"abc@gmail.com",
}
}
当调用该URL时,我应该从JSON数据中获取email
。我确实喜欢下面的数据来获取数据。
$prof=json_decode($_REQUEST['Profile']);
但是没有得到任何数据。我需要从json值获取电子邮件。请帮助我。
答案 0 :(得分:2)
json中的电子邮件ID后面有一个额外的逗号。
因此,你的json不完整。
如果删除它,您将收到电子邮件。
更正后的代码:
<?php
$json = '{
"Profile":{
"email":"abc@gmail.com"
}
}';
$arr = json_decode($json);
echo $arr->Profile->email;
?>
如果您管理json所在的页面,您可以注意不要添加这个额外的逗号。
修改强>
如果在JSON中具有相同格式的元素和子元素,则以下代码将起作用:
<?php
$json = '{
"Profile":{
"email":"abc@gmail.com",
}
}';
$json = str_replace(' ', '', $json);
$json = str_replace('",', '"', $json);
$json = json_decode($json);
echo $json->Profile->email;
?>
遵循了哪些步骤:
1)删除了空格
2)用",
替换"
。
3)解码json。
答案 1 :(得分:2)
对象的属性和数组的元素可能是更多的对象或数组。您可以使用此语法简单地访问其属性和成员。 $ this-&gt; object-&gt; element
$data = json_decode($json);
$email = $data->Profile->email
print_r($email);
要获取网址值,您可以尝试:
$url = "http://example.com";
$json = file_get_contents($url);
$json_data = json_decode($json, true);
echo "<pre>";
print_r($json_data["Profile"]['email']);
echo "</pre>";
答案 2 :(得分:1)
首先,你必须删除电子邮件后的逗号,因为它是无效的JSON。您可以通过以下链接检查JSON的有效性......
然后考虑以下代码段......
$json = '{
"Profile": {
"email": "abc@gmail.com"
}
}';
$result = json_decode ($json);
var_dump($result->Profile->email);
根据给定的JSON,它包含“$ result”对象中的“Profile”对象。因此,您可以以给定的方式访问您的对象属性。因此,如果您仍然不确定如何操作,只需在给定代码中将有效JSON分配给$ json变量,并保持其余代码不变,它将起作用!! : - )
答案 3 :(得分:0)
那样做
$prof=json_decode($_REQUEST);
您将在php中获取一个对象。然后这样做:
$prof->Profile->email
答案 4 :(得分:0)
$string = '{"Profile":{"email":"abc@gmail.com"}}';
$arr = json_decode($string);
echo $arr->Profile->email;
答案 5 :(得分:0)
您可以查看我的示例以获取描述视图here。
根据文档,您需要指定是否需要关联数组而不是json_decode
中的对象,这将是代码:
json_decode($jsondata, true);
如果你正在使用不到5.2的php,你可以使用这个资源 Using json_encode() and json_decode() in PHP4