1

JAXBを使用してオブジェクトをマーシャリングしたいのですが、問題は、ビジネスロジックに応じて一部のフィールドだけをマーシャリングしたいということです。たとえば、次のようなオブジェクトがあります。

Class Foo{
private name;
private details;
private url;

//Getter and setter methods

}

私が達成したいのは、{name: "someName"、url: "myUrl"}のように、名前とURLフィールドだけでJSON応答を送信することです。これにより、クライアントがより多くの情報を取得する必要があるときに、送信されたURIを要求できます。 URLフィールド、およびJAXBは今回詳細フィールドをマーシャリングします。{name: "someName"、url: "myUrl"、details:"details"}。

そのためにラッパークラスを使用できることは知っていますが、同じデータのラッパークラスを作成するのはちょっと面倒です。そのため、一部のフィールドだけをマーシャルするようにJAXBを構成する方法があるかどうか疑問に思いました。どうもありがとう。

4

1 に答える 1

1

デフォルトでは、JAXBは値を持つプロパティをマーシャリングするだけです。これにより、希望する動作が得られるはずです。

Foo foo = new Foo();
foo.setName("Jane Doe");
marshaller.marshal(foo, System.out);  // results in <foo><name>Jane Doe</name></foo>
foo.setDetails("Some Details");
marshaller.marshal(foo, System.out);  // results in <foo><name>Jane Doe</name><details>Some Details</details></foo>
于 2011-03-03T17:04:55.883 に答える