GSON和Google Drive Java API-“;应为BEGIN_对象,但为BEGIN_数组”;?
我正试图通过使用Gson对这个文件列表对象进行序列化和反序列化。可以从以下位置找到这些类: 及 我就是这样做的: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
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