現在では、データを受信するのが非常に一般的になっています。 JSON文字列 XML の代わりにフォーマットします。 Java で JSON 文字列を扱う場合、 JSON文字列 に JSONオブジェクト 。ただし、 JSON文字列 常に対処するのは難しいため、良い選択肢ではありません。テクノロジーの変化と需要により、私たちは次のことを行う必要があります。 JSON文字列をJSONオブジェクトに変換する 値を取得します。この問題を解決するために、以下を可能にするオープンソース ライブラリがいくつかあります。 JSON文字列をJSONオブジェクトに変換します。 このセクションでは、次のように説明しました。 JSON文字列をJSONオブジェクトに変換する方法 例を挙げて詳しく説明します。本題に移る前に、JSON 形式について見てみましょう。
jsonStringExample = { 'name' : 'Ronaldo', 'nickname' : 'Sam', 'id' : 312, 'age' : 21, 'height' : 163, 'lastOverScore' : [4, 1, 6, 6, 2, 1] }
上記の JSON 形式には 6 つの属性が含まれており、最初の 2 つは文字列、次の 3 つは数値、最後に JSON 配列です。
JSON文字列をJSONオブジェクトに変換
Java で文字列を JSON オブジェクトに変換するために使用されるライブラリは次の 3 つです。
- Gson ライブラリの使用
- JSON-Simple ライブラリの使用
- ジャクソン図書館
Gson ライブラリの使用
Gson はオープンソースで豊富な機能を備えています ジャワ Googleが提供するライブラリ。 JSON 文字列を同等の JSON オブジェクトに変換し、JSON オブジェクトを JSON 文字列に変換するために使用されます。次のコード行は、JSON 文字列を JSON オブジェクトに変換するために使用されます。
Gson g = new Gson(); Student s = g.fromJson(jsonString, Student.class)
を使用して、JSON オブジェクトを JSON 文字列に変換することもできます。 toJson() 方法。
String str = g.toJson(p);
JSON-Simple ライブラリの使用
これは、JSON 文字列を JSON オブジェクトに変換するために使用されるもう 1 つのオープンソース Java ライブラリです。 JSON-Simple ライブラリの利点は、サイズが小さいことです。メモリ制約環境が重要な場合に最適です。 JDK 1.2 とも互換性があることに注意してください。これは、Java 5 にはないレガシー プロジェクトで使用できることを意味します。次のステートメントを使用して、JSON 文字列を JSON オブジェクトに変換します。
JSONParser parser = new JSONParser(); JSONObject json = (JSONObject) parser.parse(stringToParse);
ジャクソン図書館の使用
Jackson ライブラリは、Java オブジェクトを JSON にマッピングしたり、その逆にマッピングしたりするために効率的で広く使用されている Java ライブラリです。機能が豊富でパフォーマンスが速く、ストリーミングもサポートしています。ストリームは、Web サービスからの大規模な JSON 出力を、メモリに完全にロードせずに解析できます。次のステートメントは、学生を表す JSON 文字列を学生を表す Java クラスに変換します。
Student student = new ObjectMapper().readValue(jsonString, Student.class);
Jackson ライブラリの欠点は、少なくとも JDK 1.5 が必要なことです。したがって、古いバージョンを扱う場合は、そこには適合しません。 Jackson ライブラリのもう 1 つの欠点は、J2ME をサポートしていないことです。
JSON 文字列から JSON オブジェクトへの変換例
次のプログラムでは、JSON 文字列を JSON オブジェクトに変換しました。
JsonStringToJsonObjectExample.java
import org.json.JSONObject; import org.json.JSONArray; public class JsonStringToJsonObjectExample { public static void main(String args[]) { String str = '[{'No':'17','Name':'Andrew'},{'No':'18','Name':'Peter'}, {'No':'19','Name':'Tom'}]'; JSONArray array = new JSONArray(str); for(int i=0; i <array.length(); i++) { jsonobject object="array.getJSONObject(i);" system.out.println(object.getstring('no')); system.out.println(object.getstring('name')); } < pre> <p> <strong>Output:</strong> </p> <pre> 17 Andrew 18 Peter 19 Tom </pre> <p>Let's see another example.</p> <p> <strong>JsonStringToJsonObjectExample2.java</strong> </p> <pre> import org.json.*; public class JsonStringToJsonObjectExample2 { public static void main(String[] args) { String string = '{'name': 'Sam Smith', 'technology': 'Python'}'; JSONObject json = new JSONObject(string); System.out.println(json.toString()); String technology = json.getString('technology'); System.out.println(technology); } } </pre> <p> <strong>Output:</strong> </p> <pre> Sam Smith Python </pre> <hr></array.length();>
別の例を見てみましょう。
JsonStringToJsonObjectExample2.java
ネットワークトポロジー
import org.json.*; public class JsonStringToJsonObjectExample2 { public static void main(String[] args) { String string = '{'name': 'Sam Smith', 'technology': 'Python'}'; JSONObject json = new JSONObject(string); System.out.println(json.toString()); String technology = json.getString('technology'); System.out.println(technology); } }
出力:
Sam Smith Python