Я новичок в php и Json, и я пытаюсь декодировать строки Json командной строки, но функция декодирования Json дает нуль при декодировании, я отправляю данные в правильном формате, не уверен, почему это происходит неправильно. проверили потоки и передали данные в соответствии с URL-адресом http://php.net/manual/en/function.json-decode.php
.
Вот мой код
<? 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
Я пробовал это, и он работает как шарм:
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" }'
Почему вы это делаете? $jsonin="'".$jsonin."'";
Удалите этот код и повторите попытку.