2013-12-19 38 views
8

我收到一個包含xml或json內容的字符串。檢查字符串是否包含xml或json數據

如果字符串包含JSON內容我用傑克遜(Java API)來轉換JSON到Java對象

如果它包含了我使用JAXB XML內容轉換成Java對象(解組)的XML內容。

如何檢查我是否收到該字符串中的xml或json?

回答

5

如果該字符串的編碼是已知的(或者是ASCII或UTF),那麼查看該字符串的第一個字符就足夠了。

如果字符串開頭

對於JSON,在查看「第一個」字符(如果您收到的字符串可能包含額外的空格)之前,您還必須去掉空格。

雖然它是合法的JSON數據結構與nulltruefalse開始就可以避免這些情況下,如果你已經知道了一些關於你的數據結構。

所以,基本上你可以檢查第一個字符是否是<,並在這種情況下將其視爲XML。在其他情況下,將其視爲JSON,如果jackson不是合法的JSON語法,則會引發一些異常。

+2

JSON可能還以'['開頭。 –

+1

夠公平的,我通常只看到'{',但其他人被允許,我會相應地更新答案。 – Matthias

13

XML文檔實體(通常的說法是XML文檔)必須以「<」開頭。

一個JSON文本,根據ECMA-404,開始以零個或多個空白字符,然後執行下列操作之一:

{ [ " 0-9 - true false null 

所以你的最簡單的方法是隻是爲了測試if(s.startsWith("<")

+2

其實它是如果(s.startsWith(「<」))... –

相關問題