Czy istnieje sposób sprawdzenia, czy zmienna jest prawidłowym ciągiem JSON w PHP bez użycia json_last_error()
? Nie mam PHP 5.3.3.Sprawdzanie poprawności json w php
Odpowiedz
$ob = json_decode($json);
if($ob === null) {
// $ob is null because the json cannot be decoded
}
Błąd, jeśli ciąg json jest prostą (poprawną) wartością "false". –
Dzięki chłopaki, to pomaga dużo :) –
Używam funkcji json_decode i jej zachowuje się bardzo dziwnie. jeśli wyślę taką prośbę: http://api.nblackburn.me/jobtrackr?task=account&action=modify&session=206a2911127c224a5893b8d78a4bf0fc¶ms= {}, działa, ale jeśli dodaję jakiś prawidłowy json, to nie ma żadnych pomysłów? –
Można sprawdzić, czy wartość z json_decode
to null
. Jeśli tak, jest nieprawidłowy.
Używam funkcji json_decode i jej zachowanie jest bardzo dziwne. jeśli wyślę taką prośbę: http://api.nblackburn.me/jobtrackr?task=account&action=modify&session=206a2911127c224a5893b8d78a4bf0fc¶ms= {}, działa, ale jeśli dodaję jakiś prawidłowy json, to nie ma żadnych pomysłów? –
Pokaż nam JSOn, który próbujesz analizować. –
$data = json_decode($json_string);
if (is_null($data)) {
die("Something dun gone blowed up!");
}
Ponadto można spojrzeć na http://php.net/manual/en/function.json-last-error-msg.php, które zawierają implementacje brakującej funkcji.
Jednym z nich jest:
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';
}
}
(skopiowane wklejane ze strony)
Jeśli chcesz sprawdzić, czy wkład jest ważny JSON, równie dobrze można być zainteresowany sprawdzanie, czy nie podąża za określonym formatem, tj. schematem. W takim przypadku możesz zdefiniować swój schemat za pomocą JSON Schema i potwierdzić go przy użyciu tego library.
Przykład:
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"]
}
Validation
<?php
$data = '{"firstName":"Hermeto","lastName":"Pascoal"}';
$validator = new JsonSchema\Validator;
$validator->validate($data, (object)['$ref' => 'file://' . realpath('person.json')]);
$validator->isValid()
- 1. PHP Sprawdzanie poprawności przesłania pliku
- 2. Sprawdzanie poprawności sprawdzania poprawności Knockout sprawdzanie poprawności
- 3. Python: sprawdzanie poprawności i formatowanie plików JSON
- 4. Sprawdzanie poprawności JQuery: Sprawdzanie poprawności ukrytych pól
- 5. Sprawdzanie poprawności wpisów Crontab za pomocą PHP
- 6. Sprawdzanie poprawności XML w stosunku do podanego DTD w PHP
- 7. Sprawdzanie poprawności argumentów w Ruby?
- 8. unikalne sprawdzanie poprawności w DDD
- 9. Sprawdzanie poprawności @ Html.Textbox w MVC4
- 10. Wyłącz sprawdzanie poprawności w seeds.rb
- 11. Sprawdzanie poprawności JSON względem schematu interfejsu Swagger API
- 12. Java/Android - sprawdzanie poprawności łańcucha znaków JSON względem schematu String
- 13. Sprawdzanie poprawności mojego formularza
- 14. sprawdzanie poprawności schematu XML
- 15. sprawdzanie poprawności FCKeditora
- 16. Sprawdzanie poprawności pliku WADL
- 17. Sprawdzanie poprawności hasła jQuery
- 18. Sprawdzanie poprawności modelu szkieletowego
- 19. Sprawdzanie poprawności hasła FOSUserBundle
- 20. Sprawdzanie poprawności ukrytego pola
- 21. Sprawdzanie poprawności okna dialogowego
- 22. Sprawdzanie poprawności liczb dziesiętnych
- 23. Sprawdzanie poprawności AJAX Symfony2
- 24. sprawdzanie poprawności django
- 25. Sprawdzanie poprawności moich pieniędzy
- 26. Sprawdzanie poprawności sprawdzania poprawności natychmiast po załadowaniu
- 27. W której warstwie należy wykonać sprawdzanie poprawności?
- 28. Jak mogę nakazać Eclipse sprawdzanie poprawności plików HTML jako PHP?
- 29. Sprawdzanie poprawności obrazów zakodowanych w Base64
- 30. Sprawdzanie poprawności RRSIG z PHP przy użyciu openssl
Jaka wersja PHP masz? – Whetstone
Nadal można przetestować, czy poprawna wartość pochodzi właśnie z dekodowania go, nawet jeśli nie będziesz znać dokładnego błędu składni. (Lub użyj wyrażenia regularnego, aby to sprawdzić.) Ha) – mario
'json_decode' zwróci' null' na niepowodzenie, i jest dostępne w PHP> = 5.2. – Jon