2014-11-07 5 views
0

저는 php와 Json을 처음 접했고 명령 줄 Json 문자열을 해독하려고합니다. 그러나 Json 해독 함수는 해독 중에 null을 제공하고 올바른 형식으로 데이터를 보내고 있습니다. 왜 잘못되었는지 잘 모르겠다. 나는 스레드와 데이터를 URL http://php.net/manual/en/function.json-decode.php에 따라 검사했다. 여기Json 문자열을 명령 줄을 통해 구문 분석

이 내가 다음 코드

php5 jsonparse.php '{ "time1":"2014/10/30 21:30:00", "time2":"2014/10/31 21:30:00" }' 

에 전달하고있어 어떻게 내 코드

<? php 

if($argc==2) 
{ 
    $jsonin=$argv[1]; 

    echo $jsonin."\xA"; 

    $jsonin="'".$jsonin."'"; 

    echo $jsonin ."\xA"; 

    $cmdval=json_decode($jsonin); 


    if($cmdval) 
    { 
     echo $cmdval->{'id'}; 
    } 
    else 
    { 
     echo "Bad string" ; 
    } 



} 
else 
{ 
    echo "No arguments"; 
} 


?> 

왜 이러는

{ "time1":"2014/10/30 21:30:00", "time2":"2014/10/31 21:30:00"} 

'{ "time1":"2014/10/30 21:30:00", "time2":"2014/10/31 21:30:00"}' 

Bad string 

답변

1

나는이 시도하고 그것이 마치 마법처럼 작동합니다

if($argc==2) 
{ 
    $jsonin=$argv[1]; 
    $cmdval=json_decode($jsonin); 
    if($cmdval) 
    { 
     echo "You did it right !\r\n"; 
     print_r($cmdval); 
    } 
    else 
    { 
     echo "Bad string" ; 
    } 
} 
else 
{ 
    echo "No arguments"; 
} 

을 그리고 난 아래를 실행 :

php test.php '{ "time1":"2014/10/30 21:30:00", "time2":"2014/10/31 21:30:00" }' 
+0

이것은, 덕분에 문제를 해결했다. –

1

출력이된다입니까? $jsonin="'".$jsonin."'";
이 코드를 삭제하고 다시 시도하십시오.

+0

그것을 시도했지만 didnt 한 일 –