2016-10-12 23 views
1

私はjsonを初めて使用していて、エラーが存在する場合はjsonエラーメッセージとエラーコードを表示したいと考えています。 私はPHPも使用しています。JSONで文がチェックされていない場合

これまでのところ、私が割り当てられた2つの変数:

$error_num = json_last_error(); 
$error_msg = json_last_error_msg(); 

しかし、私は、私はif文に入れるべきか混乱しています。 私はそれがいくつかの用語のようなものでなければならないと信じています:エラーが存在する場合... しかし、私はこれをどうやってできるのか理解するのに十分な経験がありません。

if (/* ERROR condition is true */) 
{ 
    echo "Error: " . $error_num . " " . $error_msg; 
} 
else 
{ 
    // .. DISPLAYS TABLE .. 
} 

私は唯一の学習であるので、私に与えることができれば助けていただきたいと思います。

答えて

0

は、私はあなたがこの

その探している最後のJSON の符号化/復号化中に発生した最後のエラーを(もしあれば)を返していると思います。

<?php 
// A valid json string 
$json[] = '{"Organization": "PHP Documentation Team"}'; 

// An invalid json string which will cause an syntax 
// error, in this case we used ' instead of " for quotation 
$json[] = "{'Organization': 'PHP Documentation Team'}"; 


foreach ($json as $string) { 
    echo 'Decoding: ' . $string; 
    json_decode($string); 

    switch (json_last_error()) { 
     case JSON_ERROR_NONE: 
      echo ' - No errors'; 
     break; 
     case JSON_ERROR_DEPTH: 
      echo ' - Maximum stack depth exceeded'; 
     break; 
     case JSON_ERROR_STATE_MISMATCH: 
      echo ' - Underflow or the modes mismatch'; 
     break; 
     case JSON_ERROR_CTRL_CHAR: 
      echo ' - Unexpected control character found'; 
     break; 
     case JSON_ERROR_SYNTAX: 
      echo ' - Syntax error, malformed JSON'; 
     break; 
     case JSON_ERROR_UTF8: 
      echo ' - Malformed UTF-8 characters, possibly incorrectly encoded'; 
     break; 
     default: 
      echo ' - Unknown error'; 
     break; 
    } 

    echo PHP_EOL; 
} 
?> 

json_decodeはエラーがこのしようとしていないかどうかを確認するには、リンクhttp://php.net/manual/en/function.json-last-error.php

0

を参照してください。

if ($error_num !== JSON_ERROR_NONE) 
{ 
    echo "Error: " . $error_num . " " . $error_msg; 

} else { 
    // .. DISPLAYS TABLE .. 
} 

JSON_ERROR_NONEはPHPの定数であり、それはエラーが

を発生していないことを
関連する問題