Json解码返回null值

时间:2016-08-30 08:26:03

标签: php json

我知道这个问题很久以前就会问,但我仍然无法解决这个问题。 我有一个json,当我转储$TenentsAccessible输出是这个

string(71) "[{`TenantID`:`test.com`,`Name`:`12thdoor`}]" 

我需要获取TenantID属性中的值。所以我使用json decode将其转换为php数组,但返回null

$jnTenant = json_decode($TenentsAccessible,TRUE);           
$tenantID = $jnTenant["TenantID"];
var_dump($jnTenant); // this return null

我尝试使用此

删除&quot和不需要的字符
$TenentsAccessible = str_replace('"', '"', $TenentsAccessible);
$TenentsAccessible=preg_replace('/\s+/', '',$TenentsAccessible); 

我知道这类问题之前有过问题,但我仍然无法解决这个问题。适当的hlep。谢谢

2 个答案:

答案 0 :(得分:2)

您可以在JsonLint上查看您的json代码。

我尝试了你的代码,因为反引号(`)而不正确。

所以你应该用(“)代替

[{
    "TenantID": "test.com",
    "Name": "12thdoor"
}]

正如hasan在他的回答中所描述的那样,json_decode返回一个多维数组,所以要获得TenantID:

$jnTenant = json_decode('[{"TenantID":"test.com","Name":"12thdoor"}]',true);           
$tenantID = $jnTenant[0]['TenantID'];
var_dump($tenantID) ; 

如果你想按照你所描述的方式获得“TenantID”,你必须修改(如果可以的话)这样的json

{
    "TenantID": "test.com",
    "Name": "12thdoor"
}

希望它有所帮助。

答案 1 :(得分:1)

试一试:

$jnTenant = json_decode('[{"TenantID":"test.com","Name":"12thdoor"}]',true);           
$tenantID = $jnTenant[0]['TenantID'];
var_dump($tenantID) ; 

纠正json和 corect get json

了解此plz print_r( $jnTenant );

这个varibale是二维数组。