json_last_error()
kullanmadan bir değişkenin PHP'de geçerli bir JSON dizesi olup olmadığını kontrol etmenin bir yolu var mı? PHP 5.3.3’üm yok.Doğrulama json in php
cevap
$ob = json_decode($json);
if($ob === null) {
// $ob is null because the json cannot be decoded
}
Json dizesi basit (geçerli) 'false' değeri ise başarısız olur. –
Teşekkürler, bu çok yardımcı olur :) –
Ben json_decode işlevi ve onun çok garip davranan kullanıyorum. Bu gibi bir istek gönderirseniz: http://api.nblackburn.me/jobtrackr?task=account&action=modify&session=206a2911127c224a5893b8d78a4bf0fc¶ms= {}, işe yarar ama eğer geçerli bir json eklersek, herhangi bir fikir olmaz mı? –
json_decode
değerinin null
olup olmadığını kontrol edebilirsiniz. Öyleyse, geçersiz.
olası yinelenen json_decode işlevini kullanıyorum ve çok garip davranıyor. Bu gibi bir istek gönderirseniz: http://api.nblackburn.me/jobtrackr?task=account&action=modify&session=206a2911127c224a5893b8d78a4bf0fc¶ms= {}, işe yarar ama eğer geçerli bir json eklersek, herhangi bir fikir olmaz mı? –
Bize ayrıştırmaya çalıştığınız JSOn'u gösterin. –
$data = json_decode($json_string);
if (is_null($data)) {
die("Something dun gone blowed up!");
}
Ayrıca, eksik fonksiyonun uygulamaları içermez http://php.net/manual/en/function.json-last-error-msg.php bir göz olabilir. Bunlardan
biri şudur:
if (!function_exists('json_last_error_msg')) {
function json_last_error_msg() {
static $ERRORS = array(
JSON_ERROR_NONE => 'No error',
JSON_ERROR_DEPTH => 'Maximum stack depth exceeded',
JSON_ERROR_STATE_MISMATCH => 'State mismatch (invalid or malformed JSON)',
JSON_ERROR_CTRL_CHAR => 'Control character error, possibly incorrectly encoded',
JSON_ERROR_SYNTAX => 'Syntax error',
JSON_ERROR_UTF8 => 'Malformed UTF-8 characters, possibly incorrectly encoded'
);
$error = json_last_error();
return isset($ERRORS[$error]) ? $ERRORS[$error] : 'Unknown error';
}
}
Girdinizin geçerli JSON olup olmadığını kontrol etmek istiyorsanız, siz de doğrulayarak ilginizi çekebilir (sitesinden yapıştırılan kopyalanan) olsun veya olmasın belirli bir format, yani bir şema takip eder. Bu durumda, şemanızı JSON Schema kullanarak tanımlayabilir ve bu library kullanarak doğrulayabilirsiniz.
Örnek:
person.json
{
"title": "Person",
"type": "object",
"properties": {
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
},
"age": {
"description": "Age in years",
"type": "integer",
"minimum": 0
}
},
"required": ["firstName", "lastName"]
}
Doğrulama
<?php
$data = '{"firstName":"Hermeto","lastName":"Pascoal"}';
$validator = new JsonSchema\Validator;
$validator->validate($data, (object)['$ref' => 'file://' . realpath('person.json')]);
$validator->isValid()
- 1. Json Serialization in C#
- 2. (PHP), JSON
- 3. PHP bir URL doğrulama
- 4. PHP eposta doğrulama
- 5. PHP Form Doğrulama Kodu
- 6. ithalat ihracatında JSON in solr
- 7. json in dynamodb'a nasıl eklenir
- 8. PHP cURL, POST JSON
- 9. JSON nesnesini php kullanarak .json dosyasına yerleştirin
- 10. Facebook Insights access in php
- 11. Slim PHP Route in Middleware
- 12. <a href.. in PHP
- 13. json header çalışmıyor - php
- 14. PHP/JSON - stdClass Object
- 15. PHP doğrulama boolean'larını kullanarak filter_var
- 16. PHP Dosya yükleme formu doğrulama
- 17. C# ayrıştırma json in # # endeksleri bilmeden
- 18. Json şeması "not in" enum tipi?
- 19. Json in cloudant için bina arama dizini
- 20. 2.4 parametreli cebirsel veri türleri JSON doğrulama
- 21. Java'da JSON nesnesini doğrulama nasıl yapılır?
- 22. Okuma JSON POST kullanarak PHP
- 23. Sorgu JSON (GeoJSON ...), PHP değerini
- 24. PHP Web Hizmeti JSON Kodlama
- 25. PHP JSON kod çözme - stdClass
- 26. JSON via PHP POST (cURL)
- 27. PHP Curve with JSON verisi
- 28. PHP JSON veya XML'ye Array
- 29. PHP sunucumdaki Unknown JSON hatası
- 30. Web sitesinden içerikler al XMLHttpRequest in PHP
PHP hangi sürümü var? – Whetstone
Tam sözdizimi hatasını bilmese bile geçerli bir değerin sadece kodunu çözmekten kaynaklanıp sınandığını test edebilirsiniz. (Veya doğrulamak için bir regex kullanın. Ha) – mario
'json_decode' başarısızlık durumunda 'null' döndürecektir ve PHP'de kullanılabilir = 5.2. – Jon