2014-11-07 3 views
0

Я новичок в php и Json, и я пытаюсь декодировать строки Json командной строки, но функция декодирования Json дает нуль при декодировании, я отправляю данные в правильном формате не знаю, почему это происходит неправильно. Я проверил с потоками и передал данные в соответствии с URL-адресом http://php.net/manual/en/function.json-decode.php.Parsing Json string через командную строку

Вот мой код

<? 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"; 
} 


?> 

Это, как я передаю его в код

php5 jsonparse.php '{ "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"} 

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

пробовал, но не работал –

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