Próbuję obsługiwać złe dane JSONA podczas analizowania przez json_decode(). Używam następujący skrypt:Wykrywanie złych danych json w PHP json_decode()?
if(!json_decode($_POST)) {
echo "bad json data!";
exit;
}
Jeśli $ _POST wynosi:
'{ bar: "baz" }'
Następnie json_decode obsługuje grzywny błędu i wypluwa; "złych danych JSON!" Jednakże, jeśli mogę ustawić $ _POST do czegoś podobnego „Nieprawidłowe dane”, to daje mi:
Warning: json_decode() expects parameter 1 to be string, array given in C:\server\www\myserver.dev\public_html\rivrUI\public_home\index.php on line 6
bad json data!
Czy muszę napisać niestandardowy skrypt do wykrywania poprawnych danych JSON, czy istnieje jakiś inny sprytny sposób, aby wykryć to?
'$ _POST' zawsze jest tablicą c przy użyciu parametrów * x-www-form-urlencoded * przekazywanych przez POST. Jak przesłać swoje dane do skryptu PHP? – Gumbo
Dołączone funkcje json w PHP nie są zbyt pomocne. Mają wiele problemów. Spójrz na [json.org] (http://json.org/), aby znaleźć dobrą bibliotekę. – whiskeysierra