0

jersey 1.16でJSONにマーシャリングしている場合にのみ、値をマーシャリングしたいjaxbアノテーション付きクラスのメソッドがあります-これは下でjackson 1.9を使用しています。私は、jaxb の @XmlTransient と jackson の @JsonProperty を使用して、次のような方法でこれを行うことを望んでいました。

@XmlRootElement
public class SomeClass {  

  // Other XmlElement annotated methods

  @XmlTransient
  @JsonProperty(value="type")
  public String getType(){
      return this.type;
  }

}

...しかし、マーシャリングはまったく行われていないようです。エラーは発生しません。

4

1 に答える 1

0
  1. Jackson を使用する POJOMappingFeature を使用するには、Jersey を切り替える必要がありました。
  2. XmlTransient を含める必要はありませんでした。そうしないと、要素が無視されたように見えました。場合によっては、getType がまだ XML でシリアル化されている可能性があると思いますが、実際のクラスでは propOrder を使用していました。getType で XmlElement が宣言されていなかったため、これは問題ではありませんでした。それが問題になる可能性がある他のケースでは、デフォルトでシリアル化されていないことを確認するために jsonGetType のようなものを使用する必要があると思います。
于 2012-12-13T23:13:01.177 に答える