Gsonで文字列をJsonObjectに変換する

1. 概要

Gsonライブラリを使用してJavaでJSONを操作する場合、生のJSONを他のクラスまたはデータ構造に変換するためのいくつかのオプションがあり、それらをより簡単に操作できます。
たとえば、https://www.baeldung.com/gson-json-to-map [JSON文字列を_Map <String、Object> _に変換]またはlink:/gson-deserialization -guide [マッピングでカスタムクラスを作成]。
ただし、JSONを汎用オブジェクトに変換できると便利な場合があります。 *このチュートリアルでは、https://github.com/google/gson [_Gson_]がa * _ * JsonObject * _ * from a * _ * String。* _を提供する方法を説明します。

2. Mavenの依存関係

まず、_pom.xml_に__gson ___dependencyを含める必要があります。
<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.8.5</version>
</dependency>
https://search.maven.org/search?q=g:com.google.code.gson%20AND%20a:gsonの最新バージョンを見つけることができます。

*3. JsonParser *を使用する

JSON _String_を_JsonObject_に変換するための最初のアプローチは、_JsonParser_クラスを使用する2ステップのプロセスです。
最初のステップでは、元の_String_を解析する必要があります。
Gsonは_JsonParser、_と呼ばれるパーサーを提供します。これは、指定されたJSON _String_を_JsonElements_の解析ツリーに解析します。
public JsonElement parse(String json) throws JsonSyntaxException
_JsonElement_ツリーで_String_を解析したら、__ getAsJsonObject()__メソッドを使用して、目的の結果を返します。
最終的な_JsonObject_を取得する方法を見てみましょう。
String json = "{ \"name\": \"Baeldung\", \"java\": true }";
JsonObject jsonObject = new JsonParser().parse(json).getAsJsonObject();

Assert.assertTrue(jsonObject.isJsonObject());
Assert.assertTrue(jsonObject.get("name").getAsString().equals("Baeldung"));
Assert.assertTrue(jsonObject.get("java").getAsBoolean() == true);

*4. fromJson *の使用

2番目のアプローチでは、_Gson_インスタンスを作成し、_fromJson_メソッドを使用する方法を確認します。 このメソッドは、指定されたJSON _String_を指定されたクラスのオブジェクトに逆シリアル化します。
public <T> T fromJson(String json, Class<T> classOfT) throws JsonSyntaxException
このメソッドを使用してJSON _String_を解析し、_JsonObject_クラスを2番目のパラメーターとして渡す方法を見てみましょう。
String json = "{ \"name\": \"Baeldung\", \"java\": true }";
JsonObject convertedObject = new Gson().fromJson(json, JsonObject.class);

Assert.assertTrue(convertedObject.isJsonObject());
Assert.assertTrue(convertedObject.get("name").getAsString().equals("Baeldung"));
Assert.assertTrue(convertedObject.get("java").getAsBoolean() == true);

5. 結論

この基本的なチュートリアルでは、JavaでJSON形式の_String_から_JsonObject_を取得するためにGsonライブラリを使用する2つの異なる方法を学びました。 したがって、中間のJSON操作に適したものを使用する必要があります。
いつものように、これらの例のソースコードは利用可能ですhttps://github.com/eugenp/tutorials/tree/master/gson[over on GitHub]。