GSON和Google Drive Java API-“;应为BEGIN_对象,但为BEGIN_数组”;?

GSON和Google Drive Java API-“;应为BEGIN_对象,但为BEGIN_数组”;?,java,android,json,serialization,gson,Java,Android,Json,Serialization,Gson,我正试图通过使用Gson对这个文件列表对象进行序列化和反序列化。可以从以下位置找到这些类: 及 我就是这样做的: private List<File> mListOfResults = new ArrayList<File>(); FileList fileList = new FileList(); fileList.setItems(mListOfResults); outState.putString("RESULT_LIST", new Gson().toJ

我正试图通过使用Gson对这个文件列表对象进行序列化和反序列化。可以从以下位置找到这些类:

我就是这样做的:

private List<File> mListOfResults = new ArrayList<File>();

FileList fileList = new FileList();
fileList.setItems(mListOfResults);
outState.putString("RESULT_LIST", new Gson().toJson(fileList));
我真的需要一些帮助,因为我和我的学校同事已经被这个问题困扰了2-3周


编辑:我成功地序列化和反序列化了文件列表对象,但现在,当我尝试从反序列化的文件列表获取特定的文件时,出现了一个新问题。如果我不将文件列表的项添加到列表中,则序列化工作正常。下面是我收到的错误

Caused by: java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to com.google.api.services.drive.model.File

非常感谢您抽出时间。

您正在使用Gson 2.3吗?它会告诉您JSON与您的Java模型不匹配的地方。谢谢你的建议。我试图使用Gson 2.3,但我用于Google Drive API的库强制我使用Gson 2.1:/向API发行人报告问题。它是完全兼容的,你可以升级而不破坏任何东西。
{
"items": [
{
  "alternateLink": "censoredLink",
  "appDataContents": false,
  "copyable": true,
  "createdDate": {
    "value": 1414937347638,
    "tzShift": 0,
    "dateOnly": false
  },
  "downloadUrl": "censoredUrl",
  "editable": true,
  "etag": "\"M4lMw\"",
  "fileExtension": "png",
  "fileSize": 982646,
  "headRevisionId": "0BPQ",
  "iconLink": "url",
  "id": "0BxWW1fYlE",
  "imageMediaMetadata": {
    "height": 1920,
    "width": 1200
  },
  "kind": "drive#file",
  "labels": {
    "hidden": false,
    "restricted": false,
    "starred": false,
    "trashed": false,
    "viewed": true
  },
  "lastModifyingUser": {
    "displayName": "myName",
    "emailAddress": "myEmail",
    "isAuthenticatedUser": true,
    "kind": "drive#user",
    "permissionId": "myId"
  },
  "lastModifyingUserName": "myName",
  "lastViewedByMeDate": {
    "value": 1415793202783,
    "tzShift": 0,
    "dateOnly": false
  },
  "markedViewedByMeDate": {
    "value": 1414937361409,
    "tzShift": 0,
    "dateOnly": false
  },
  "md5Checksum": "myMd5Checksum",
  "mimeType": "image\/png",
  "modifiedByMeDate": {
    "value": 1415793202783,
    "tzShift": 0,
    "dateOnly": false
  },
  "modifiedDate": {
    "value": 1415793202783,
    "tzShift": 0,
    "dateOnly": false
  },
  "originalFilename": "Screenshot_2014-11-02-16-07-03.png",
  "ownerNames": [
    "myName"
  ],
  "owners": [
    {
      "displayName": "myName",
      "emailAddress": "myEmail",
      "isAuthenticatedUser": true,
      "kind": "drive#user",
      "permissionId": "myId"
    }
  ],
  "parents": [
    {
      "id": "parentId",
      "isRoot": true,
      "kind": "drive#parentReference",
      "parentLink": "parentLink",
      "selfLink": "mySelfLink"
    }
  ],
  "quotaBytesUsed": 982646,
  "selfLink": "Link",
  "shared": false,
  "thumbnailLink": "Link",
  "title": "Screenshot_2014-11-02-16-07-03.png",
  "userPermission": {
    "etag": "\"M4l5R3cU\"",
    "id": "me",
    "kind": "drive#permission",
    "role": "owner",
    "selfLink": "myLink",
    "type": "user"
  },
  "version": 20986,
  "webContentLink": "myWebContentLink",
  "writersCanShare": true
},
{
  "alternateLink": "myAlternateLink",
  "appDataContents": false,
  "copyable": true,
  "createdDate": {
    "value": 1412844742040,
    "tzShift": 0,
    "dateOnly": false
  },
  "downloadUrl": "myDownloadUrl",
  "editable": true,
  "etag": "\"MDc0MQ\"",
  "fileExtension": "png",
  "fileSize": 743314,
  "headRevisionId": "0Bx",
  "iconLink": "myLink",
  "id": "myId",
  "imageMediaMetadata": {
    "height": 814,
    "width": 609
  },
  "kind": "drive#file",
  "labels": {
    "hidden": false,
    "restricted": false,
    "starred": false,
    "trashed": false,
    "viewed": true
  },
  "lastModifyingUser": {
    "displayName": "myName",
    "emailAddress": "myEmail",
    "isAuthenticatedUser": true,
    "kind": "drive#user",
    "permissionId": "02323"
  },
  "lastModifyingUserName": "myName",
  "lastViewedByMeDate": {
    "value": 1415605118741,
    "tzShift": 0,
    "dateOnly": false
  },
  "markedViewedByMeDate": {
    "value": 1412844842132,
    "tzShift": 0,
    "dateOnly": false
  },
  "md5Checksum": "23123",
  "mimeType": "image\/png",
  "modifiedByMeDate": {
    "value": 1415605118741,
    "tzShift": 0,
    "dateOnly": false
  },
  "modifiedDate": {
    "value": 1415605118741,
    "tzShift": 0,
    "dateOnly": false
  },
  "originalFilename": "puasdgessy.png",
  "ownerNames": [
    "myName"
  ],
  "owners": [
    {
      "displayName": "myName",
      "emailAddress": "myEmail",
      "isAuthenticatedUser": true,
      "kind": "drive#user",
      "permissionId": "23123"
    }
  ],
  "parents": [
    {
      "id": "parentId",
      "isRoot": true,
      "kind": "drive#parentReference",
      "parentLink": "myParentLink",
      "selfLink": "mySelfLink"
    }
  ],
  "quotaBytesUsed": 743314,
  "selfLink": "mySelfLink",
  "shared": false,
  "thumbnailLink": "myThumbnailLink",
  "title": "asd.png",
  "userPermission": {
    "etag": "\"M-7E\"",
    "id": "me",
    "kind": "drive#permission",
    "role": "owner",
    "selfLink": "myLink",
    "type": "user"
  },
  "version": 20928,
  "webContentLink": "myLink,
  "writersCanShare": true
},
{
  "alternateLink": "myAlternateLink",
  "appDataContents": false,
  "copyable": true,
  "createdDate": {
    "value": 1414836963515,
    "tzShift": 0,
    "dateOnly": false
  },
  "downloadUrl": "myDownloadUrl",
  "editable": true,
  "etag": "\"M4MA\"",
  "fileExtension": "png",
  "fileSize": 48876,
  "headRevisionId": "myId",
  "iconLink": "myIcon",
  "id": "myId",
  "imageMediaMetadata": {
    "height": 1920,
    "width": 1200
  },
  "kind": "drive#file",
  "labels": {
    "hidden": false,
    "restricted": false,
    "starred": false,
    "trashed": false,
    "viewed": true
  },
  "lastModifyingUser": {
    "displayName": "myName",
    "emailAddress": "myEmail",
    "isAuthenticatedUser": true,
    "kind": "drive#user",
    "permissionId": "061"
  },
  "lastModifyingUserName": "myName",
  "lastViewedByMeDate": {
    "value": 1415605116280,
    "tzShift": 0,
    "dateOnly": false
  },
  "markedViewedByMeDate": {
    "value": 1414937348615,
    "tzShift": 0,
    "dateOnly": false
  },
  "md5Checksum": "e29d",
  "mimeType": "image\/png",
  "modifiedByMeDate": {
    "value": 1415605116280,
    "tzShift": 0,
    "dateOnly": false
  },
  "modifiedDate": {
    "value": 1415605116280,
    "tzShift": 0,
    "dateOnly": false
  },
  "originalFilename": "Screenshot_2014-11-01-12-15-27.png",
  "ownerNames": [
    "myName"
  ],
  "owners": [
    {
      "displayName": "myName",
      "emailAddress": "myEmail",
      "isAuthenticatedUser": true,
      "kind": "drive#user",
      "permissionId": "myPermissionId"
    }
  ],
  "parents": [
    {
      "id": "myId",
      "isRoot": true,
      "kind": "drive#parentReference",
      "parentLink": "myParentLink",
      "selfLink": "mySelfLink"
    }
  ],
  "quotaBytesUsed": 48876,
  "selfLink": "mySelfLink",
  "shared": false,
  "thumbnailLink": "myThumbnailLink",
  "title": "Scree5-27.png",
  "userPermission": {
    "etag": "\"M4RZpXxU\"",
    "id": "me",
    "kind": "drive#permission",
    "role": "owner",
    "selfLink": "myLink",
    "type": "user"
  },
  "version": 20927,
  "webContentLink": "myWebContentLink",
  "writersCanShare": true
    }
   ]
}
Caused by: java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to com.google.api.services.drive.model.File