您必须编写一个自定义反序列化程序。我会做这样的事情:
首先,您需要包含一个新类,比您已经拥有的2个更进一步:
public class Response {
    public VkAudioAlbumsResponse response;
}
然后你需要一个自定义的反序列化程序,类似于以下内容:
private class VkAudioAlbumsResponseDeserializer 
    implements JsonDeserializer<VkAudioAlbumsResponse> {
  @Override
  public VkAudioAlbumsResponse deserialize(JsonElement json, Type type,
        JsonDeserializationContext context) throws JsonParseException {
    JsonArray jArray = (JsonArray) json;
    int firstInteger = jArray.get(0); //ignore the 1st int
    VkAudioAlbumsResponse vkAudioAlbumsResponse = new VkAudioAlbumsResponse();
    for (int i=1; i<jArray.size(); i++) {
      JsonObject jObject = (JsonObject) jArray.get(i);
      //assuming you have the suitable constructor...
      VkAudioAlbum album = new VkAudioAlbum(jObject.get("owner_id").getAsInt(), 
                                            jObject.get("album_id").getAsInt(), 
                                            jObject.get("title").getAsString());
      vkAudioAlbumsResponse.getResponse().add(album);
    }
    return vkAudioAlbumsResponse;
  }  
}
然后,您必须反序列化您的JSON,如下所示:
GsonBuilder gsonBuilder = new GsonBuilder();
gsonBuilder.registerTypeAdapter(VkAudioAlbumsResponse.class, new VkAudioAlbumsResponseDeserializer());
Gson gson = gsonBuilder.create();
Response response = gson.fromJson(jsonString, Response.class);
使用此方法,当 Gson 尝试将 JSON 反序列化为类时,它会发现该类中有一个与 JSON 响应中的名称匹配的属性,因此它将继续解析。Responseresponse
然后它意识到此属性的类型是 ,因此它使用您创建的自定义反序列化程序来解析它,该反序列化程序处理JSON响应的其余部分并返回对象。VkAudioAlbumsResponseVkAudioAlbumsResponse
注意:反序列化程序中的代码非常简单,所以我想你理解它不会有问题......有关更多信息,请参阅 Gson API Javadoc