2011-02-24 108 views
3

我想驗證傳入的json對象在服務器端的正確性。有沒有一個標準/最佳的方式來做到這一點?你的驗證方法是什麼?如何驗證JSON對象?

+0

你使用什麼服務器端語言?很多將取決於此。 – mattmc3 2011-02-24 04:14:39

+0

我正在使用Java – 2011-02-24 04:15:53

回答

5

我的建議 - 反序列化JSON並查看它是否中斷。例如,如果您在服務器端使用C#,則可以使用新穎的DataContractJsonSerializer,或者使用JavaScriptSerializer這種可以簡單得多的舊方法。

var serializer = new JavaScriptSerializer(); 
var result = serializer.Deserialize<Dictionary<string, object>>(jsonString); 

編輯:而現在,它的問世,您使用的是Java,當然,我的C#示例是不會爲你工作,但概念是相同的。 Stackoverflow已經有一些答案hereConvert a JSON string to object in Java ME?

+0

感謝您的迴應。我知道如何將json轉換爲java對象。我想在它轉換成java對象之前對它進行快速通用驗證(以檢查它是否有效)。 – 2011-02-24 04:29:16

+0

@Harsha驗證JSON文本意味着在某種程度上解析它。因此,對於正確的json文本(在任何體面的應用程序中,它應該超過無效的json的一個很大的因素),你最終會做雙重解析。這真的值得嗎? – rahulmohan 2011-02-24 05:40:51

+0

很多時候,您可能希望在請求到達後端之前進行驗證。在這種情況下,某種模式驗證是按順序進行的。 – TechTrip 2012-05-11 09:37:05

3

使用JSON庫對其進行解碼。如果它使用符合規範的庫成功解碼,那麼它是有效的。

+1

是最快捷的方法之一是將其解碼爲java對象,並查看它是否在解碼時拋出錯誤。我想對給定的json對象進行通用驗證,而無需將其轉換爲java對象。我不想創建僅用於驗證的java對象。任何你最喜歡的json庫/實用程序會幫助我嗎? – 2011-02-24 04:35:43