JSONはオブジェクトの配列です。
ライブラリ(およびその他のJSONシリアル化/逆シリアル化)ライブラリに関する全体的な考え方Gson
は、最終的には独自のPOJOを使用することです。
配列に含まれるオブジェクトを表すPOJOを作成し、List
そのJSONからそれらのオブジェクトを取得する方法は次のとおりです。
public class App
{
public static void main( String[] args )
{
String json = "[{\"title\":\"facebook\",\"description\":\"social networking website\"," +
"\"url\":\"http://www.facebook.com\"},{\"title\":\"WoW\",\"description\":\"game\"," +
"\"url\":\"http://us.battle.net/wow/\"},{\"title\":\"google\",\"description\":\"search engine\"," +
"\"url\":\"http://www.google.com\"}]";
// The next 3 lines are all that is required to parse your JSON
// into a List of your POJO
Gson gson = new Gson();
Type type = new TypeToken<List<WebsiteInfo>>(){}.getType();
List<WebsiteInfo> list = gson.fromJson(json, type);
// Show that you have the contents as expected.
for (WebsiteInfo i : list)
{
System.out.println(i.title + " : " + i.description);
}
}
}
// Simple POJO just for demonstration. Normally
// these would be private with getters/setters
class WebsiteInfo
{
String title;
String description;
String url;
}
出力:
フェイスブック:ソーシャルネットワーキングウェブサイト
すごい:ゲーム
グーグル:検索エンジン
編集して追加: JSONはさまざまなものであるため、ジェネリックスが関係しているためTypeToken
、に到達するにはを使用する必要があります。List
あなたは実際にそれなしで次のことをすることができます:
WebsiteInfo[] array = new Gson().fromJson(json, WebsiteInfo[].class);
WebsiteInfo
これで、1行のコードからオブジェクトの配列ができました。そうは言っても、ジェネリックCollection
またはList
実証されているように使用する方がはるかに柔軟性があり、一般的に推奨されます。
これについて詳しくは、Gsonユーザーガイドをご覧ください。