2016-08-30 6 views
3

Я знаю этот вопрос, задавая много раз прежде, но все же я не мог заставить это работать. у меня есть JSON и когда я свалка $TenentsAccessible выход этоJson decode возвращает нулевое значение

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); 

я знаю этот тип вопроса спросить прежде, но я до сих пор не может заставить это работать. соответствующий hlep. благодаря

+3

Это недействительно JSON. JSON использует '' 'имена и строки свойств, а не обратные ссылки (' '' '). Действительной версией этого будет' [{«TenantID»: «test.com», «Name»: «12thdoor»}] ' –

+0

Вы кодировали его с помощью json_encode? –

+0

Возьмите добычу по адресу http://php.net/manual/en/function.json-last-error.php, чтобы показать вам ошибку, также, как говорит @TJCrowder, json неверно. – Perry

ответ

2

вы можете проверить свой код json на JsonLint.

Я пробовал ваш код, и это неверно из-за обратных шагов (`).

Таким образом, вы должны заменить ("), чтобы иметь

[{ 
    "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

попробовать:

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

правильно и JSON Corect получить JSON!

для понимают плз print_r($jnTenant);

это varibale является Двумерный массив.

Смежные вопросы