Ich schreibe Unit-Tests gegen eine Funktion inspiriert von Fastest way to check if a string is JSON in PHP?Wie verschiedene Werte für json_last_error
Zum Beispiel zu bekommen, habe ich versucht, Steuerzeichen an den JSON-Strings, um das Hinzufügen json_last_error
zu bekommen JSON_ERROR_CTRL_CHAR
gleichen, aber es funktioniert nicht. Es gibt einen Fehler in JSON, aber scheinbar immer JSON_ERROR_SYNTAX
. Ich habe einige Nachforschungen angestellt, bin mir aber nicht sicher, wie ich es auf bestimmte Weise zum Scheitern bringen kann.
Wie kann ich die folgenden JSON-Zeichenfolgen ändern, damit json_last_error
zu etwas anderem als JSON_ERROR_SYNTAX
oder JSON_ERROR_NONE
ausgewertet wird?
$json = '[{user_id":"\x0230", "username":"stack"},{"user_id":14,"username":"over"}]';
$json = '[{"user_id":"\t\\r\\n", "username":"stack"},{"user_id":14,"username":"over"}]';
Vielen Dank im Voraus, Adam
Auch gefunden [diese Antwort] (http://stackoverflow.co m/a/24543526/2734189), die einen 'JSON_ERROR_STATE_MISMATCH 'erhält. –
@ dont-panic, Ich habe versucht, sowohl Ihre Antwort (um die Strg-Zeichen zu erhalten) und die Kommentar-Link für 'State Mismatch' Fehler und beide funktionierten großartig. Außerdem konnte ich den numerischen Fall im Schaltblock entfernen! Prost und vielen Dank. –
Ich habe versucht, ein Beispiel zu finden, um den 'JSON_ERROR_UTF8'-Fall auszulösen, aber bis jetzt schien der auf der Manual-Page nicht zu funktionieren –