2

Jackson を使用して、Jersey 内で JAXB 生成クラスを JSON にシリアライズしています。生成された JSON は正常に機能しますが、一部のトークン名の前に @ が付いています。

例えば

xsd は次を定義します。

<xs:element name="uid" type="xs:long"/>

これは、Java クラスで次のように生成されます。

private Long uid;

関連する getter と setter を使用します。標準の Jackson ObjectMapper (デフォルト構成) を使用すると、シリアライズされた JSON は次のようになります。

"@uid":  1

Jackson のドキュメントを読みましたが、なぜそうなのかを示すものは見つかりませんでした。JSON を @uid ではなく uid としてシリアル化する方法はありますか? @ の意味を理解する必要があると思います。プロパティには @ が付いているものと付いていないものがあります。

ご協力いただきありがとうございます。

4

1 に答える 1

0

これは確実に知るには十分な情報ではありません。最初に、使用している実際の Java オブジェクト (POJO) を表示する必要があります。Jackson は XML スキーマを何にも使用しません。ゲッター、セッター、アノテーションがすべてです。

ただし、Jackson を使用していない可能性もあります。これは、Jettisonや などの XML ベースのツールの典型的な動作であるためXStreamです。「要素と属性」を区別するためにアットマークを追加する傾向があります (これは、これらのツールが保持したい XML 固有の違いです)。

于 2013-06-10T22:45:04.167 に答える