2013-07-08 109 views
1

以下服務:轉換普通字符串JSON

@Produces({MediaType.APPLICATION_JSON}) 
public Response getJson(...) { 
    return Response.ok("hello").build(); 
} 

應該返回application/json

然而,在調用這個服務與

Status-Code: 200 
Content-Type:application/json 
Response: hello 

返回難道不應該拋出一個普通的字符串轉換成JSON的序列化過程中的某種異常的,因爲「你好」是不是有效的JSON?

任何想法爲什麼這是可行的?

+2

返回類型是application/json。它並沒有說只返回JSON。 –

回答

2

Content-Type與響應本身之間沒有任何關係。

Java不會對返回的數據進行任何規定或驗證。

Content-Type是客戶端確定內容類型的主要內容,但對於服務器來說,它只是一個發送給客戶端的字符串。

Content-Type與真實內容不匹配時,客戶端做什麼取決於客戶端。

還有沒有序列化由Java完成,但返回值是平原發送到客戶端。

+0

感謝您的快速響應。如果這是正確的,我不會看到'@ Produces'與響應如何相關。到目前爲止,我認爲如果上述服務被調用,它只能在客戶端請求application/json時返回有效的application/json。 –

+0

@akoskm該註釋用於文檔並設置回覆的「Content-Type」。而已。 –

+0

所以基本上可以創建一個web服務,其中返回的內容和內容類型完全不相關。謝謝你的澄清! –

相關問題