如何使用PHP获取Json数据

时间:2016-01-19 06:20:23

标签: php json

我有一个问题是使用PHP获取Json数据。我有一个包含JSON数据的URL,如下所示。

 {  
       "Profile":{  
          "email":"abc@gmail.com",
       }
    }

当调用该URL时,我应该从JSON数据中获取email。我确实喜欢下面的数据来获取数据。

$prof=json_decode($_REQUEST['Profile']);

但是没有得到任何数据。我需要从json值获取电子邮件。请帮助我。

6 个答案:

答案 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的有效性......

http://jsonlint.com/

然后考虑以下代码段......

$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