2013-12-19 37 views
8

xmlまたはjsonのいずれかの内容を含むStringを受け取ります。文字列はJSONコンテンツが含まれている場合は文字列にxmlデータまたはjsonデータが含まれているか確認してください。

は私がJSON Javaオブジェクト

へと変換するジャクソン(のJava API)を使用し、それは私が(アンマーシャリング)JavaオブジェクトにXMLコンテンツを変換するためにJAXBを使用してXMLコンテンツが含まれている場合。

xmlまたはjsonがその文字列で受信されているかどうかを確認するにはどうすればよいですか?

答えて

5

その文字列のエンコーディングがわかっている場合(またはASCIIまたはUTFの場合)、その文字列の最初の文字を見るだけで十分です。

文字列を使用すると、XML構造を持っている<

JSONの場合、「最初の」文字を表示する前に空白を削除する必要があります(受信した文字列に空白が含まれている可能性がある場合)。

JSONデータ構造がnulltruefalseで始まるのは合法ですが、データ構造について既に分かっている場合は避けてください。

したがって、基本的に最初の文字が<であるかどうかを確認できます。この場合、XMLとして扱います。他のケースでは、それをJSONとして扱い、jacksonが法的なJSON構文でない場合、いくつかの例外を発生させます。

+2

JSONをテストすることである可能性も'['で始まります。 –

+1

十分に公正で、私は通常 '{'のみ参照してください、他は許可されているので、私はそれに応じて答えを更新します。 – Matthias

13

XMLドキュメントエンティティ(一般的な用語ではXMLドキュメント)は、 "<"で始まる必要があります。

A JSONテキストは、ECMA-404によると、次のいずれかに続くゼロ個以上の空白文字で始まります。

{ [ " 0-9 - true false null 

だからあなたの最も簡単な方法は、ちょうどif(s.startsWith("<")

+2

実際には(s.startsWith( "<"))... –

関連する問題