文字列(String型)としてJSONの受け渡しをする場合があると思います。

その際に、文字列がJSONかどうかをパースする方法を紹介していきます。

 

① org.jsonライブラリを使用する

org.jsonライブラリのorg.json.JSONObjectとorg.json.JSONArrayの作成をトライしてみて、作れたらJSON、作れなかったらただの文字列と判別する方法になります。

論理構造としてもとてもわかりやすいですね。

1. org.jsonライブラリのインポート

org.jsonライブラリを自分のプロジェクトにインポートしましょう。

mavenを使う方はhttps://mvnrepository.com/artifact/org.json/json

 

2. 例外処理でパースしていく

 

パースしたい文字列を引数として渡します。

まずはJSONObjectとしてnewできるかトライします。

エラーが出たら次にJSONArrayとしてnewできるかトライします。

どちらでもnewできなかったら文字列となります。

JSONの場合はTrue、文字列の場合はFalseを返します。

 

② jacksonライブラリを使う

JSONを扱うライブラリにはGSONやjacksonなどがありますが、jacksonを使ったやり方を紹介します。

1. jacksonライブラリをインポート

まずはjacksonライブラリを自分のプロジェクトにインポートします。

mavenを使う方はhttps://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core

 

2. パース処理をする

原理は①と全く同じです。

標準APIを使うか、外部APIを使うかの違いのみです。

こちらも一応説明しておきますと、ObjectMapperがnewできるならJSON、できないならただの文字列として判別しています。

JSONの場合はTrue、文字列の場合はFalseを返します。