配列パラメータをバックグラウンドに渡すjquery ajaxの例
要件:
配列パラメータをJSのバックグラウンドに転送する
分析:
JSの配列は弱く型指定されており、任意の型(オブジェクト、基本型)を含めることができますが、配列がオブジェクト型の場合、何がバックグラウンドに渡されるか? 以下の理由により、表示できるのはオブジェクト文字列--[object Object]のみです:
バックグラウンドで受信する場合、request.getParameterValues() メソッドは String[ を返すだけです。オブジェクトの toString() メソッドはフォアグラウンド送信中に呼び出されますが、それでもオブジェクトを転送したい場合はどうすればよいでしょうか。サラダ!
ただし、JSON 文字列を使用して実装でき、JSON 文字列はバックグラウンドで Java オブジェクトに解析されます。
おそらく、次のような複合オブジェクトの場合にどうするかを言いたいでしょう:
public class Person { private String username; private String password; private Address addr; }
Person オブジェクトに Address 型の addr 属性がありますが、その属性値は問題ではありません。すべてのオブジェクトで最終的に使用されるのは、基本的なデータ型です。解析できるのは、対応するパッケージ化型の parseInt または parseXXX のみです。
実装:
OK、これが原則です。まずは JS の書き方を見てみましょう:
var as = []; var temp = []; for ( var int = 0; int < 5; int++) { temp.push('{"k":'); temp.push(int); temp.push(',"v":'); temp.push(int); temp.push('}'); as.push(temp.join("")); } //Jquery中的方法,具体参考Jquery API $.post( "servlet/AjaxServlet?m=putWarningRule",{"aa":as} );
最後の文字列は次のスタイルです。(例として)
{"k":0,"v":0}
バックエンドの受信、フレームワークについては説明しません。必要なのは HttpServletRequest のみです
String[] jsonArr = request.getParameterValues("aa[]");
注意すべき点が 1 つあります。 jsではパラメータを渡すときのパラメータ名は「aa」ですが、バックグラウンドで受け取るときは「aa[]」になります。ここでJqueryが変換する必要があるため、「aa[」に変更するのが最善の方法です。 ]」を JS で記述しているのに、ここで「[]」を書かないのは問題を説明するためです。次のメソッドを使用してリクエスト内のすべてのパラメータを出力できます
Enumeration<String> names = request.getParameterNames(); while (names.hasMoreElements()) { String string = (String) names.nextElement(); System.out.println(string); }
OK。この時点で、残っているのは JSON 文字列を POJO に変換する方法だけです。私は jsontools-core-1.7.jar を使用します。この jar パッケージは antlr-2.7.7.jar に依存しています。ダウンロード後、クラスパスをインポートして簡単なツール クラスを作成します。メソッド:
/** * 将对象转换为JSON格式的字符串 * @param obj * @return 返回JSON字符串 */ public static String toJSONAsString(Object obj){ try { return JSONMapper.toJSON(obj).render(false); } catch (MapperException e) { e.printStackTrace(); } return null; } @SuppressWarnings("unchecked") public static <T> T jsonToObject(String jsonStr, Class<T> targetClass) throws TokenStreamException, RecognitionException, MapperException{ JSONValue jv = new JSONParser(new StringReader(jsonStr)).nextValue(); return (T) JSONMapper.toJava(jv,targetClass); } //test public static void main(String[] args) throws Exception { Person p = new Person(); p.setK("a"); p.setV("v"); String json = toJSONAsString(p); Person np = jsonToObject(json,Person.class); System.out.println(np.getK()+"=="+np.getV()); }
request が値を取得した後、配列を走査し、次のように
Person p = JSONUtils.jsonToObject(jsonArr[0], Person.class);
person クラスを 1 つずつ変換します:
public class Person { private String k; private String v; public String getK() { return k; } public void setK(String k) { this.k = k; } public String getV() { return v; } public void setV(String v) { this.v = v; } }
配列パラメータをバックグラウンドに渡す jquery ajax の例については、お支払いください関連記事については、PHP 中国語 Web サイトに注目してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









記事では、JavaScriptライブラリの作成、公開、および維持について説明し、計画、開発、テスト、ドキュメント、およびプロモーション戦略に焦点を当てています。

この記事では、ブラウザでJavaScriptのパフォーマンスを最適化するための戦略について説明し、実行時間の短縮、ページの負荷速度への影響を最小限に抑えることに焦点を当てています。

フロントエンドのサーマルペーパーチケット印刷のためのよくある質問とソリューションフロントエンド開発におけるチケット印刷は、一般的な要件です。しかし、多くの開発者が実装しています...

この記事では、ブラウザ開発者ツールを使用した効果的なJavaScriptデバッグについて説明し、ブレークポイントの設定、コンソールの使用、パフォーマンスの分析に焦点を当てています。

この記事では、Javaのコレクションフレームワークの効果的な使用について説明します。 データ構造、パフォーマンスのニーズ、スレッドの安全性に基づいて、適切なコレクション(リスト、セット、マップ、キュー)の選択を強調しています。 コレクションの使用を効率的に最適化します

この記事では、ソースマップを使用して、元のコードにマッピングすることにより、Minified JavaScriptをデバッグする方法について説明します。ソースマップの有効化、ブレークポイントの設定、Chrome DevtoolsやWebpackなどのツールの使用について説明します。

このチュートリアルでは、chart.jsを使用してパイ、リング、およびバブルチャートを作成する方法について説明します。以前は、4つのチャートタイプのchart.js:ラインチャートとバーチャート(チュートリアル2)、およびレーダーチャートと極地域チャート(チュートリアル3)を学びました。 パイとリングチャートを作成します パイチャートとリングチャートは、さまざまな部分に分かれている全体の割合を示すのに理想的です。たとえば、パイチャートを使用して、サファリの男性ライオン、女性ライオン、若いライオンの割合、または異なる候補者が選挙で受け取る票の割合を示すことができます。 パイチャートは、単一のパラメーターまたはデータセットの比較にのみ適しています。パイチャートのファンの角度はデータポイントの数値サイズに依存するため、パイチャートは値のあるエンティティをゼロ値で描画できないことに注意してください。これは、割合がゼロのエンティティを意味します

スキルや業界のニーズに応じて、PythonおよびJavaScript開発者には絶対的な給与はありません。 1. Pythonは、データサイエンスと機械学習でさらに支払われる場合があります。 2。JavaScriptは、フロントエンドとフルスタックの開発に大きな需要があり、その給与もかなりです。 3。影響要因には、経験、地理的位置、会社の規模、特定のスキルが含まれます。
