我收到一個包含xml或json內容的字符串。檢查字符串是否包含xml或json數據
如果字符串包含JSON內容我用傑克遜(Java API)來轉換JSON到Java對象
如果它包含了我使用JAXB XML內容轉換成Java對象(解組)的XML內容。
如何檢查我是否收到該字符串中的xml或json?
我收到一個包含xml或json內容的字符串。檢查字符串是否包含xml或json數據
如果字符串包含JSON內容我用傑克遜(Java API)來轉換JSON到Java對象
如果它包含了我使用JAXB XML內容轉換成Java對象(解組)的XML內容。
如何檢查我是否收到該字符串中的xml或json?
如果該字符串的編碼是已知的(或者是ASCII或UTF),那麼查看該字符串的第一個字符就足夠了。
如果字符串開頭
<
你有XML結構。{
,[
或other allowed start characters你有一個JSON結構。對於JSON,在查看「第一個」字符(如果您收到的字符串可能包含額外的空格)之前,您還必須去掉空格。
雖然它是合法的JSON數據結構與null
,true
,false
開始就可以避免這些情況下,如果你已經知道了一些關於你的數據結構。
所以,基本上你可以檢查第一個字符是否是<
,並在這種情況下將其視爲XML。在其他情況下,將其視爲JSON,如果jackson不是合法的JSON語法,則會引發一些異常。
XML文檔實體(通常的說法是XML文檔)必須以「<」開頭。
一個JSON文本,根據ECMA-404,開始以零個或多個空白字符,然後執行下列操作之一:
{ [ " 0-9 - true false null
所以你的最簡單的方法是隻是爲了測試if(s.startsWith("<")
其實它是如果(s.startsWith(「<」))... –
JSON可能還以'['開頭。 –
夠公平的,我通常只看到'{',但其他人被允許,我會相應地更新答案。 – Matthias