私はjson_encode()
を使用しています。使用しているファイルはJavaScriptグリッドに解析されます。例えばJSONエラーを検出できますか
:
Index.php
は私がJSONに私のPHPの配列を解析data.php
を呼び出すJavaScriptを持っています。質問は、Index.php
がデータを正しく取得しているかどうかを知る方法があるかどうかです。何らかのデバッグ?
私はjson_encode()
を使用しています。使用しているファイルはJavaScriptグリッドに解析されます。例えばJSONエラーを検出できますか
:
Index.php
は私がJSONに私のPHPの配列を解析data.php
を呼び出すJavaScriptを持っています。質問は、Index.php
がデータを正しく取得しているかどうかを知る方法があるかどうかです。何らかのデバッグ?
を参照してください。
JSONLintを使用してJSONを確認してください。
json_decode
は、それが失敗した場合NULL
を返します。
if (json_decode($your_json_var, true) === NULL)
{
// NULL is returned if the json cannot be decoded or if the
// encoded data is deeper than the recursion limit.
}
は、同様に'null'
と比較、これは完全に保存するようにするには:PHP 5.3以降を使用することをお勧めします
if (json_decode($json, true) === NULL && $json !== 'null')
{
// NULL is returned if the json cannot be decoded or if the
// encoded data is deeper than the recursion limit.
}
、それはアクセスを提供していますエラー状態が発生したときに!== JSON_ERROR_NONE
を返すjson_last_error
になります。
Index.phpスクリプトは、失敗または成功を示すステータスコードを返す必要があります。
はあなたのJavaScriptを確認するには、FirefoxやChromeのデベロッパーツールのためFirebugのようなものを使用することができますRFC 2616 - 10 Status Code Definitions
... Index.phpがデータを正しく取得しているかどうかを知る方法があります。あるいは何らかのデバッグ?
あなたは適切なクライアント側のデバッガを使用している(と2012年にならないno excuseがあります!)場合は、データは「ネットワーク」タブまたは類似を使用してサーバーに前後に行く見ることができます。 json_encode
が無効なJSONを予想していないと想定しています(たとえば、構造などを試しているなど)。クライアントに送り返されたデータをコピーしてhttp://jsonlint.comに貼り付けて、最終結果を確認できるように再フォーマットすることができます。
JavaScriptインタラクションでjQueryなどのライブラリを使用している場合、モニタすることを選択するとエラーイベントが発生する可能性があります。 ここに「エラー」が表示されます:http://api.jquery.com/jQuery.ajax/
ブラウザでdata.phpファイルを直接呼び出すこともできます。データがある場合は、返されるデータがあるかどうかを確認してください。
json_decode
が潜在的にリテラルTRUE
、FALSE
、またはNULL
値を返すことができるので、問題をチェックするための唯一の100%安全な方法がjson_last_error
です:
if (json_last_error() !== JSON_ERROR_NONE) {
... decoded with error ...
}
、これはPHP 5.3のみで追加されました。これに先立って、返される構造体の期待されるデータをチェックする必要があります。