4

Rest ベースの Web サービスで次の Rest メソッドを作成しました

@GET
@Produces("application/json")
@Path("plain")
public String getPlain()
{
    return "hello world";
}

@GET
@Produces("application/json")
@Path("wrapper")
public Response getWrapper()
{
    return Response.ok(new Object(){ public String data = "hello world";}).build();
}

プレーン サービスを呼び出すと、json 形式の出力ではなく、生の文字列のhello worldが返されます。ただし、文字列をオブジェクトでラップすると、json {"data":"hello world"}が返されます

なぜそのような行動を示しているのですか?プレーンな文字列をjsonとして送信するにはどうすればよいですか?

4

2 に答える 2

0

上記のオプションを試しましたが、うまくいきません。

String result="hello world";
return result;

String が自動変換されない理由は、@XmlRootElement が欠落しているためと思われます。cxf http://cxf.apache.org/docs/jax-rs-data-bindings.html#JAX-RSDataBindings-HandlingJAXBbeanswithoutXmlRootElementannotationsのドキュメントに基づいて、いくつかの jaxbElementClassMap を使用する必要があります。しかし、それ以上の詳細を見つけることができません。

于 2012-12-20T09:55:12.593 に答える
-2

これを試して

@GET 
@Produces("application/json") 
@Path("plain") 
public String getPlain() 
{ 
String result= "hello world";
    return result;
} 

JSONにはキーと値のペアが必要です。

于 2012-09-24T09:11:08.693 に答える