0

Spring MVC 3 ajax呼び出しを実行して、jsonシリアル化データからドロップダウンを設定しようとしています。

私が見ている問題は、リストに返されるJSONSpringの形式とその理由がわからないことです。

Ajaxデータを返すメソッドは次のようになります。

@RequestMapping(value="/getMyObjects", method=RequestMethod.POST)
@ResponseBody
public List<MyObject> getMyObjects () {

 List<MyObject> myobjects = // populate list

 return myobjects;

}

そして、私が理解している限り、それが私がする必要があるすべてであるべきですよね?

私のアプリログでは、次のように、実際に応答をJSONに変換していることがわかります。

2012-06-20 11:08:21,125 DEBUG(AbstractMessageConverterMethodProcessor.java:139)-[[MyObject [id = 1376、name = Something test]、MyObject [id = 1234 name = More test]]] as "application / json; charset = UTF-8 "using [org.springframework.http.converter.json.MappingJacksonHttpMessageConverter@d1b7e5]

しかし、そのJSON文字列は私には奇妙に見えます、それは有効ですか?

[{id:1376、name = "Something test"}、{id:1234、name ="Moretest"}]のようなものを期待していました

クライアント側で応答を受け取ってアラートを実行すると、[オブジェクトオブジェクト][オブジェクトオブジェクト]のようなオブジェクトの配列が表示されます。このデータの処理方法がわかりません。

私は試してみます:alert(data); --上記で説明した出力を提供します$(data).each(function(){alert(this.id); // undefined!});

この種のJSONデータを使用するにはどうすればよいですか、またはそれをより管理しやすいものに変換するにはどうすればよいですか?

[編集]クライアント側のコードを現在のアラート応答に添付しようとしています:$。ajax({type: "POST"、url: "getMyObjects"、success:function(data){alert(data);//[オブジェクトオブジェクト][オブジェクトオブジェクト]alert(data.value); //未定義$(data).each(function(){alert(this.id); //各反復で未定義});}、エラー:関数(XMLHttpRequest、 textStatus、errorThrown){alert(textStatus);}});

4

2 に答える 2

0

Spring 3は、AJAX呼び出しの非常に優れたフレームワークであるDWR (ダイレクトWebリモーティング)との統合を提供します。DWRでは、コアJavaと同じように、リストを非常に簡単に処理できます。

于 2012-06-20T17:08:20.957 に答える
0

これです!期待どおりのjson形式を取得する必要があります。コード (パーサー、フォーマット) はもう必要ありません。

表示されないのは、返された実際の json です。ブラウザでURLをすぐに試して、ajaxで呼び出さずにhttp://yourdomain/yourservlet/getMyObjects、jsonがそのまま表示されるようにします。

または、firebug で firfox を使用すると、ajac 呼び出し (要求と応答) を確認できます。

アップデート

$.ajax({
url: "path/to/your/url",
cache: false,
async: false,
success: function(data){                    
    for (var i = 0; i < data.length; i++) {
        alert(data[i].id);
        alert(data[i].name);
    }
}

});

于 2012-06-20T17:25:52.720 に答える