1

Bing-Search-API を使用して取得したこの JSON があります。現在、GSON を使用してネストされた要素にアクセスする方法がわかりません。JSON 構造データのソース ファイルは既に作成しています。

私がこれを行う場合:

Gson gson = new Gson();

JsonParser parser = new JsonParser();

JsonArray Jarray = parser.parse(jsonText).getAsJsonArray();

ではない私をスローするJsonArrayので、 に変更した場合JsonObject、どうすればResults.javaString MediaUrlからを取得できますか?

ありがとうございました

4

1 に答える 1

4

Gsonクラスの javadoc に基づく:

    Gson gson = new Gson();
    Response response = gson.fromJson(jsonText, Response.class);
    Results firstResult = response.getD().getResults().get(0);
    System.out.println(firstResult.getMediaUrl());

JsonParserしたがって、を直接使用する必要はありません。

これを機能させるには、Java クラスを少し変更する必要があります。

  • resultsのフィールドのタイプは、入力するオブジェクトのクラスを見つけることができるD.javaようにする必要List<Results>があります。Gson
  • 属性/フィールドの命名に一貫性がなく、小文字で始まるものもあれば大文字で始まるものもあります。Java クラスと json 文字列で同じであることを確認してください (大文字と小文字の区別を考慮してください)。この問題は、シリアル化/逆シリアル化に適切なFieldNamingStrategyを使用することで対処できる場合があります。
于 2013-08-13T16:43:47.337 に答える