2012-09-21 141 views
4

我已經創建了我的基於REST Web服務在Rest服務中返回純字符串不返回json?

@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(); 
} 

當我打電話平原服務返回原始字符串的Hello World以下其餘部分的方法,而不是一個JSON格式化輸出。然而,將字符串包裝在對象中會返回一個json {「data」:「hello world」}

爲什麼它顯示出這樣的行爲?我如何發送純String作爲json?

+0

http://docs.oracle.com/cd/E19798-01/821-1841/gipxf/index.html – kosa

+0

您是否嘗試刪除@Produces註釋? –

+0

爲什麼我會刪除@Produces註釋當我想要的是一個JSON?無論如何,我給它一個嘗試......沒有幫助。 – orak

回答

-2

試試這個

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

JSON需要一個鍵值對。

+0

JSON需要一個鍵值對或一個數組 –

+0

@DavidGrant是,在上述問題上下文中的鍵值對。 – shashankaholic

+0

@shashankaholic此方法也返回相同的純字符串...沒有json ... – orak

0

我試過上面的選項,它不起作用。

String result="hello world"; 
return result; 

String未被自動轉換的原因似乎是由於缺少@XmlRootElement。根據cxf​​中的論述,我們需要使用一些jaxbElementClassMap。但無法找到更多細節。