Apache CXFとJacksonの上で実行されるJAX-RS RESTサービスのセット全体があります。 POJOをJSONにマーシャリングするためにJAXBアノテーションを使用しています。ジャーナル経由でraw JSONを渡すには?
ただし、私たちは未処理のJSON文字列(Redisキャッシュから取得したもの)を返す場所が1つまたは2つあります。
ジャクソンは常に文字列を二重引用符で囲み、すべての二重引用符をエスケープします(例:
@GET @Produces("application/json")
public Response getData() {
String json = ...get from Redis...
return Response.ok(json,"application/json").build()
}
は私たちに、オブジェクトマッパーにRawSerializer(String.class)を追加
"{\"test\":1}"
の代わりに、私は複数のものを試してみた
{"test":1}
を与え、何も機能しません。働く唯一の事は、私はジャクソンをバイパスし、プレーン文字列にメディアタイプを設定している場合ですが、私は悪い
return Response.ok(json,"text/plain").build()
作品が、(すなわち、間違ったコンテンツタイプ
を返しておりますので、良いではありません間違ったコンテンツタイプは、私たちに電話する.Net WCFアプリケーション)
代わりにMapを使用してJerseyに正しく解析させる必要がありました。mapper.setVisibility(PropertyAccessor.FIELD、Visibility.ANY)でJacksonJsonProviderを追加しました。 –