ホームページ >Java >&#&チュートリアル >Struts2 JSONプラグインを使用して特定のオブジェクトのみをシリアル化する方法は?

Struts2 JSONプラグインを使用して特定のオブジェクトのみをシリアル化する方法は?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-29 09:25:10236ブラウズ

How to Serialize Only a Specific Object with Struts2 JSON Plugin?

Struts2 JSON プラグインとルート オブジェクト

Struts2 JSON プラグインは通常、アクション全体を JSON にシリアル化します。ただし、特定のオブジェクトのみをシリアル化する必要がある場合は、struts.xml 構成の「root」属性を使用してルート オブジェクトを指定できます。

この例では、JSON プラグインが次のとおりであるためにエラーが発生します。 SearchResult オブジェクトのリストを含む Part アクション全体をシリアル化しようとしています。ただし、jQuery 成功ハンドラーは、col1 やcol2 などの特定のキーを持つ JSON オブジェクトを想定しています。

ルート オブジェクトを使用した解決策

この問題を解決するには、行リストをstruts.xml ファイル内のルート オブジェクト:

<result type="json">
    <param name="root">rows</param>
</result>

これは、行のみをシリアル化するようにプラグインに指示します。 list は、jQuery 成功ハンドラーでアクセスするオブジェクトです。

アクション クラスで、行リストのゲッター メソッドを作成できます。

public List<MyRow> getRows() {
    return this.rows; 
}

Value Object forカスタム シリアル化

JSON オブジェクトの列を定義するには、col1 および Col1 のゲッターとセッターを備えた MyRow のような値オブジェクトを作成できます。列2のプロパティ。これにより、シリアル化形式をカスタマイズできます。

更新された jQuery コールバック

ルート オブジェクトを指定すると、$.each 関数を使用してデータにアクセスするように jQuery 成功ハンドラーを更新できます。

var handledata = function(data) {
    $.each(data, function(index) {
        alert(data[index].col1);
        alert(data[index].col2);
    });
}

ルート オブジェクトを使用すると、シリアル化プロセスを制御し、jQuery で必要なデータを確実に利用できるようになります。ハンドラー。

以上がStruts2 JSONプラグインを使用して特定のオブジェクトのみをシリアル化する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。