0

.jsp ページから JSON オブジェクトを取得しようとしています。しかし、私はそれをどうするかわかりません。私はこれをしばらくグーグルで調べましたが、この getJSON 関数が何をするのかわかりません。

JSON オブジェクトの文字列表現を返しますか?

または、関数に渡されるパラメーター「json」は JSON オブジェクトですか?

関数 (第 2 パラメーター) は、XMLHttpRequests を使用するときに記述する関数と同等ですか? 言い換えると; この関数は非同期部分ですか?

「JSON スタッフ」のアラートは印刷されません。

<script type="text/javascript" src="jquery-1.7.2.js"></script>
<script type="text/javascript">
    function checkUni() {

        var URL = "http://localhost:8080/GradSchoolApp/test.jsp";

        var jso = $.getJSON(URL, function(json) {
            alert("JSON stuff " + json.name);
        });

        alert(jso);
        //alert(jso.name);

    }
4

3 に答える 3

3

いくつかの確認事項:

webapp も localhost:8080 で実行されていますか? そうでない場合は、同一オリジン ポリシーに違反している可能性があり、その場合は jsonp にエンコードする必要があります。

また、firebug/inspect element/whatever をチェックインして、実際にリクエストから何かが返されていることを確認する必要があります。これは、使用しているブラウザに応じて、ネットワークまたはリソース タブで実行できます。また、アラートの前にスクリプトにブレークポイントを設定し、json オブジェクトを調べて、何かが返されたかどうかを確認します。

呼び出したときに json オブジェクトがまだ存在しないため、2 番目のアラートは発生しません。

于 2012-05-30T00:30:44.560 に答える
2

の関連ドキュメントgetJSONこちらです。コールバック パラメータ (名前を付けたものjson) は、既にデコードされたデータです (つまり、文字列ではなく JavaScript オブジェクトです)。

アラートが何もしない理由については、Charles Bandes の回答を参照してください。コードをより適切にデバッグするには、使用することもできますconsole.log(Firebug または Chrome で動作します)、および/またはハンドラーを設定するajaxErrorこともできます。そのため、問題がリクエストにある場合は、エラーが通知されます (ブラウザがそれを無視する代わりに)。デフォルト)。

于 2012-05-30T00:34:21.827 に答える
2

JSON オブジェクトの文字列表現を返しますか?

応答は JSON 形式で送信されます。getJSONメソッドは、データ型が as の jQuery ajax の短縮形ですjson。データ型は、ajax 呼び出しから結果を受け取る形式を決定します。

関数に渡されるパラメーター「json」は JSON オブジェクトですか?

コールバック関数の変数 json は、ajax 呼び出しからの応答を取得します。データは有効なJSONドキュメントにある必要があります(サーバーページがそのように適切に返される場合)

この関数は非同期部分ですか?

先ほどお話ししたように、getJSONはデータ型が Json の jquery ajax のショートフォームです。非同期です。

于 2012-05-30T00:36:12.957 に答える