Json解码返回空值


Json decode returns null value

我知道这个问题以前问过很多次,但我仍然不能得到这个工作。我有一个json,当我转储$TenentsAccessible输出是这个

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

我需要得到TenantID属性内的值。所以我使用json解码将其转换为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); 

我知道这种类型的问题问之前,但我仍然不能得到这个工作。适当的帮助。由于

你可以在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"
}

希望能有所帮助。

试一试:

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

正确json和正确获取json !

理解这个plz print_r( $jnTenant );

此变量为二维数组。