JSON データ交換フォーマットです。これは、軽量で言語に依存しない形式として広く使用されています。データを JSON から XML に変換できます。 Java は多数の JSON パッケージを提供します。これらのパッケージの助けを借りて、私たちは取得したり、 JSONObjectから値を取得します。 2 つの異なる JSON パッケージを使用しました org.json そして org.json.simple 。このセクションでは、次のことを学びます Java で JSONObject から値を取得する方法と適切な例を示します。
JavaのJSONObjectとは何ですか?
で ジャワ 、 JSONオブジェクト は、次の形式のデータを含む順序付けされていないコレクションです。 名前と値 ペア。これは、名前と値の間にコロンが入った一対の中括弧で囲まれた文字列として示されます。その内部形式は、名前で値にアクセスし、名前で値を追加および置換するための get および put メソッドを必要とするオブジェクトです。
{ 'first name': 'John', 'city': 'Florida', 'age': '22' },
上の例では、 名前、都市、 そして 年 は名前です、そして フロリダ州ジョン、 そして 22 はそれぞれの値です。
Java JSONオブジェクトクラス
Java は、 org.json パッケージ。これは、不変 (チャレンジ不可能) な JSONObject 値を表します。オブジェクトの値は、 順序なし のグループ 名前と値 ペア。また、変更できない JSON オブジェクトの名前と値のマッピングを表示するための Map も提供します。 JSONObject の値は次のとおりです。 ブール値、文字列、数値、JSONObject、JSONArray、JSONNumber、JSONString など。 これらの JSONObject 値には、対応するさまざまなアクセサー メソッドを使用してアクセスできます。
の 得る() メソッドは、値が見つかった場合は値を返し、値が見つからなかった場合は例外をスローします。一方、 オプト() メソッドは例外をスローする代わりにデフォルト値を返します。値は null の可能性があります。これがこれら 2 つの方法の主な違いです。したがって、これら 2 つのメソッドは、JSONObject から値を取得するのに役立ちます。汎用メソッド get() および opt() によって返されたオブジェクトをキャストまたはクエリできます。
の JSONオブジェクト クラスには、JSONObject から値を取得するために使用できる次のメソッドが含まれています。
getBoolean() メソッド
このメソッドは、String 型のパラメータ名を解析します。解析のパラメータに関連するマッピングのブール値を返します。関連付けられたマッピングが JsonValue.TRUE の場合は true を返し、関連付けられたマッピングが JsonValue.FALSE の場合は false を返します。
構文:
boolean getBoolean(String name)
それは投げます NullPointerException 指定された名前にマッピングがない場合。それも投げます クラスキャスト例外 指定された名前マッピングは JsonValue.TRUE または JsonValue.FALSE に割り当てることができません。
getInt()メソッド
を取得するために使用されます。 JsonNumber(名前).intValue()。 このメソッドは、String 型のパラメータ名を解析します。解析されたパラメータに関連付けられたマッピングの整数値を返します。
JavaコアJava
構文:
int getInt(String name)
それは投げます NullPointerException 指定された名前にマッピングがない場合。それも投げます クラスキャスト例外 指定された名前マッピングは JsonNumber に割り当てることができません。
getJsonArray() メソッド
を取得するために使用されます。 JsonArray get(名前)。 このメソッドは、関連する値が返される String 型の引数名を解析します。 parseed パラメータに関連付けられたマッピングの配列値を返します。オブジェクトにパラメータのマッピングがない場合は、null を返します。
構文:
JsonArray geJsonArray(String name)
それは投げます クラスキャスト例外 指定された名前マッピングは JsonArray に割り当てることができません。
getJsonNumber() メソッド
を取得するために使用されます。 (JsonNumber)get(名前)。 このメソッドは、関連する値が返される String 型の引数名を解析します。 parseed パラメータに関連付けられたマッピングの数値を返します。オブジェクトにパラメータのマッピングがない場合は、null を返します。
構文:
JsonNumber geJsonNumber(String name)
それは投げます クラスキャスト例外 指定された名前マッピングは JsonNumber に割り当てることができません。
getJsonObject() メソッド
を取得するために使用されます。 (JsonObject)get(名前)。 このメソッドは、関連する値が返される String 型の引数名を解析します。解析のパラメータに関連付けられたマッピングのオブジェクトを返します。オブジェクトにパラメータのマッピングがない場合は、null を返します。
構文:
ピート・デビッドソンの年齢
JsonObject geJsonObject(String name)
それは投げます クラスキャスト例外 指定された名前マッピングは JsonObject に割り当てることができません。
getJsonString() メソッド
を取得するために使用されます。 (JsonString)get(名前)。 このメソッドは、関連する値が返される String 型の引数名を解析します。解析されたパラメータに関連付けられたマッピングの文字列値を返します。オブジェクトにパラメータのマッピングがない場合は、null を返します。
構文:
JsonString geJsonString(String name)
それは投げます クラスキャスト例外 指定された名前マッピングは JsonString に割り当てることができません。
getString() メソッド
を取得するために使用されます。 getJsonString(名前).getString() 。このメソッドは、関連する値が String として返される String 型の引数名を解析します。解析されたパラメータに関連付けられたマッピングの文字列値を返します。
構文:
String geString(String name)
それは投げます NullPointerException 指定された名前にマッピングがない場合。それも投げます クラスキャスト例外 指定された名前マッピングは JsonString に割り当てることができません。
上記のメソッドを使用してプログラムを作成し、JSON オブジェクトから値を取得してみましょう。
注: 次のコードを使用する前に、 json-20200518.jar をダウンロードします。 ファイルを作成してプロジェクトに追加します。
GetValueFromJsonExample.java
import org.json.*; public class GetValueFromJsonExample { public static void main(String[] args) throws JSONException { //constructor of the JSONObject class JSONObject obj = new JSONObject( '{' + 'Employee ID: 092789,' + 'Employee Name: Helen Mirren,' + 'Age: 27, ' + 'Designation: Assistant Manager,' + 'City: Florida,' + 'Salary: 67000.00, ' + 'Experience: 26 ' + '}' ); //getting values form the JSONObject System.out.println('Employee ID: '+obj.getInt('Employee ID')); System.out.println('Employee Name: '+obj.getString('Employee Name')); System.out.println('Age: '+obj.getInt('Age')); System.out.println('Designation: '+obj.getString('Designation')); System.out.println('City: '+obj.getString('City')); System.out.println('Salary: '+obj.getDouble('Salary')); System.out.println('Experience: '+obj.getInt('Experience') +' Months'); } }
出力:
別の JSON ライブラリを使用して、JSONObject から値を取得してみましょう。次のプログラムでは、 json-simple 図書館。次のプログラムを使用する前に、json-simple-1.1.1.jar ファイルをダウンロードしてプロジェクトに追加します。
GetValueFromJsonObjectExample.java
import org.json.simple.JSONObject; import org.json.simple.JSONValue; public class GetValueFromJsonObjectExample { public static void main(String[] args) { //defining a JSON string String s='{'name':'William Hill','Salary':67000.0,'age':42}'; Object obj=JSONValue.parse(s); //creating an object of JSONObject class and casting the object into JSONObject type JSONObject jsonObject = (JSONObject) obj; //getting values form the JSONObject and casting that values into corresponding types String name = (String) jsonObject.get('name'); double salary = (Double) jsonObject.get('Salary'); long age = (Long) jsonObject.get('age'); //printing the values System.out.println('Name: '+name); System.out.println('Salary: '+salary); System.out.println('Age: '+age); } }
出力: