2

追加の整数を持つオブジェクトをジャージー サービスに転送したいと考えています。

私のサービスメソッドは次のようになります。

@POST
@Path("/test")
@Consumes("application/json")
public void test(Person pers, int number)

本体の Json は次のようになります。

{
"name":"TEST",
"surname":"TEST",
"number":"1000"
}

追加の整数なしで機能します。

では、間違った JSON メッセージに違いないと思いますか?

ところで:数値はオブジェクトから独立しているため、この var を person-class に統合することはできません。

誰か助けてください。

よろしくお願いします

4

1 に答える 1

0

Jersey はプリミティブ型をシリアル化しないため、質問に表示されているようには機能しません。次の投稿を確認してください: how-to-serialize-java-primitives-using-jersey-rest

また、プリミティブ型のラッパー オブジェクト (この例では Integer オブジェクト) のシリアル化もサポートしていません。上記の投稿で述べたように、int をラップし、適切な注釈を持つ独自のクラスを作成できます。

あなたが質問で与えたこのケースでは、文字列を渡してint値を解析するだけで十分だと思います:

@POST
@Path("/test")
@Consumes("application/json")
public void test(Person pers, String number){

    int x = Integer.parseInt(number);
    //rest of code here 
} 
于 2012-04-25T10:48:54.987 に答える