2014-05-22 3 views
0

내가 디코딩 할이json을 디코딩하고 json에서 php로 값을 설정하는 방법은 무엇입니까?

{"name":"peter","availability":"available"} 

같은 $json를 JSON 가능한 PHP로 값을 설정하고 echo하지만 어떤 쇼?,이 코드

<?PHP 
       $decode = json_decode($json, true); 
       $availability = $decode[availability]; 
       echo $availability; 
?> 

어디 잘못 사용합니까?

+0

이/그 코드를 붙여 넣기하고 괜찮 았는데보십시오. 귀하의 문제가 무엇이든간에 그것은 질문에 표현되어 있지 않습니다. – Quentin

+0

이것이 작동하지 않는 제 코드입니다 ' peter, 'availability'=> available); $ json = json_encode ($ arr); $ decode = json_decode ($ json, true); $ availability = $ json_decode [가용성]; print_r ($ json); echo $ availability; ?> ' – user3661149

+0

변수 이름을 잘못 입력했습니다. 내가 강조하기 위해 커뮤니티 위키 답변을 만들었습니다. 이 질문을 읽는 사람들은 오랫동안 가치가 없으므로 "오타로 인한 것"으로 끝낼 수 있습니까? – Quentin

답변

2

를 사용하여 위의 통지 값을 표시해야 코드가 정확한지 그러나 그것은

Notice: Use of undefined constant availability - assumed 'availability' 

로 통지를 올릴 것이다

$availability = $decode[availability]; 

이다 사용하는 경우

$availability = $decode["availability"]; 

$json 문자열이 추가하지 않은 경우는 예외입니다.

귀하의 코드

<?php 
$arr = array('name' => peter, 'availability' => available); 
$json = json_encode($arr); 
$decode = json_decode($json, true); 
$availability = $json_decode[availability]; 
print_r($json); 
echo $availability; 
?> 

지금 이것은 당신이 $decode

대신 다른 배열 이름 $json_decode을 사용하는

$decode = json_decode($json, true); 
$availability = $json_decode[availability]; 

을 따라서 올바른 방법이

되어하는 일입니다
$arr = array('name' => 'peter', 'availability' => 'available'); 
$json = json_encode($arr); 
$decode = json_decode($json, true); 
$availability = $decode['availability']; //print_r($json); 
echo $availability; 
+2

아, 너는 나를 때렸다! – Kinnectus

+0

이것은 질문에 대답하지 않습니다.배열 키를 따옴표로 묶는 것은 좋은 코딩 스타일이지만 OP의 코드가 왜 작동하지 않는지 설명하지 않습니다. – Quentin

0

당신은 코멘트에 전체 코드를 공급 :

$decode = json_decode($json, true); 
$availability = $json_decode[availability]; 

$decode$json_decode이 같은 변수 이름이 아니다. 하나를 선택하고 일관성있게하십시오.

0

인용문을 찾으 셨습니다. 그것은

$availability = $decode['availability']; 

되어야하며, 대신 배열을 울리는, 당신은 꽤 인쇄를 사용할 수 있습니다.

내가 복사
$json = '{"name":"peter","availability":"available"}'; 
$decode = json_decode($json, true); 
//$availability = $decode['availability']; 
echo "<pre>"; 
print_r($decode); 
관련 문제