PHP algılama json_decode () arızası

1 Cevap php

PHP'nin kullanırken json_decode(), ben çözme ve doğru bir şekilde deşifre NULL değer bir başarısızlık gösteren bir NULL return değeri birbirinden ayırt etmek için bir yol görmüyorum:

var_dump(json_decode('nonsense')); // returns NULL
var_dump(json_decode(json_encode(NULL))); // also returns NULL

Ve durum bir istisna değil. Yani bir kod çözme başarısızlık sınamak için nasıl emin değilim.

Fikirler?

1 Cevap

Herhangi bir JSON hataları ayrıştırma için json_last_error kontrol etmesi gerekir.

json_decode($string);
switch(json_last_error()) {
    case JSON_ERROR_DEPTH:
        echo ' - Maximum stack depth exceeded';
    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_NONE:
        echo ' - No errors';
    break;
}