问题描述
我得到了GitHub API的回应
{
"url": "https://api.github.com/repos/square/okhttp/issues/6235","repository_url": "https://api.github.com/repos/square/okhttp","labels_url": "https://api.github.com/repos/square/okhttp/issues/6235/labels{/name}","comments_url": "https://api.github.com/repos/square/okhttp/issues/6235/comments","events_url": "https://api.github.com/repos/square/okhttp/issues/6235/events","html_url": "https://github.com/square/okhttp/pull/6235","id": 684864978,"node_id": "MDExOlB1bGxSZXF1ZXN0NDcyNjgxNjU4","number": 6235,"title": "Document interceptor throwing modes","user": {
"login": "swankjesse","id": 133019,"node_id": "MDQ6VXNlcjEzMzAxOQ==","avatar_url": "https://avatars3.githubusercontent.com/u/133019?v=4","gravatar_id": "","url": "https://api.github.com/users/swankjesse","html_url": "https://github.com/swankjesse","followers_url": "https://api.github.com/users/swankjesse/followers","following_url": "https://api.github.com/users/swankjesse/following{/other_user}","gists_url": "https://api.github.com/users/swankjesse/gists{/gist_id}","starred_url": "https://api.github.com/users/swankjesse/starred{/owner}{/repo}","subscriptions_url": "https://api.github.com/users/swankjesse/subscriptions","organizations_url": "https://api.github.com/users/swankjesse/orgs","repos_url": "https://api.github.com/users/swankjesse/repos","events_url": "https://api.github.com/users/swankjesse/events{/privacy}","received_events_url": "https://api.github.com/users/swankjesse/received_events","type": "User","site_admin": false
},"labels": [
],"state": "open","locked": false,"assignee": null,"assignees": [
],"milestone": null,"comments": 0,"created_at": "2020-08-24T18:09:47Z","updated_at": "2020-08-24T18:21:18Z","closed_at": null,"author_association": "MEMBER","active_lock_reason": null,"pull_request": {
"url": "https://api.github.com/repos/square/okhttp/pulls/6235","diff_url": "https://github.com/square/okhttp/pull/6235.diff","patch_url": "https://github.com/square/okhttp/pull/6235.patch"
},"body": "","performed_via_github_app": null
}
我尝试了以下代码
@Entity(tableName = "issue_list_table")
class IssueModal {
@Serializedname("id")
@Expose
@PrimaryKey
var id: Int = 0
@Serializedname("body")
@Expose
@ColumnInfo(name = "body")
var body: String = ""
@Serializedname("url")
@Expose
@ColumnInfo(name = "url")
var url: String = ""
@Serializedname("repository_url")
@Expose
@ColumnInfo(name = "repository_url")
var repositoryUrl: String = ""
@Serializedname("labels_url")
@Expose
@ColumnInfo(name = "labels_url")
var labelsUrl: String = ""
@Serializedname("comments_url")
@Expose
@ColumnInfo(name = "comments_url")
var commentsUrl: String = ""
@Serializedname("events_url")
@Expose
@ColumnInfo(name = "events_url")
var eventsUrl: String = ""
@Serializedname("html_url")
@Expose
@ColumnInfo(name = "html_url")
var htmlUrl: String = ""
@Serializedname("node_id")
@Expose
@ColumnInfo(name = "node_id")
var nodeId: String = ""
@Serializedname("number")
@Expose
@ColumnInfo(name = "number")
var number: Int = 0
@Serializedname("title")
@Expose
@ColumnInfo(name = "title")
var title: String = ""
@Serializedname("user")
@Expose
@Embedded
var user: User = User()
@Serializedname("state")
@Expose
@ColumnInfo(name = "state")
var state: String = ""
@Serializedname("locked")
@Expose
@ColumnInfo(name = "locked")
var locked: Boolean = false
@Serializedname("comments")
@Expose
@ColumnInfo(name = "comments")
var comments: Int = 0
@Serializedname("created_at")
@Expose
@ColumnInfo(name = "createdAt")
var createdAt: String = ""
@Serializedname("updated_at")
@Expose
@ColumnInfo(name = "updated_at")
var updatedAt: String = ""
@Serializedname("author_association")
@Expose
@ColumnInfo(name = "author_association")
var authorAssociation: String = ""
}
用户类别
class User {
@Serializedname("id")
@Expose
@PrimaryKey
@ColumnInfo(name = "user_id")
var id: Int = 0
@Serializedname("login")
@Expose
@ColumnInfo(name = "login")
var login: String = ""
@Serializedname("node_id")
@Expose
@ColumnInfo(name = "user_node_id")
var nodeId: String = ""
@Serializedname("avatar_url")
@Expose
@ColumnInfo(name = "avatar_url")
var avatarUrl: String = ""
@Serializedname("gravatar_id")
@Expose
@ColumnInfo(name = "gravatar_id")
var gravatarId: String = ""
@Serializedname("html_url")
@Expose
@ColumnInfo(name = "user_html_url")
var htmlUrl: String = ""
@Serializedname("followers_url")
@Expose
@ColumnInfo(name = "followers_url")
var followersUrl: String = ""
@Serializedname("following_url")
@Expose
@ColumnInfo(name = "following_url")
var followingUrl: String = ""
@Serializedname("gists_url")
@Expose
@ColumnInfo(name = "gists_url")
var gistsUrl: String = ""
@Serializedname("starred_url")
@Expose
@ColumnInfo(name = "starred_url")
var starredUrl: String = ""
@Serializedname("subscriptions_url")
@Expose
@ColumnInfo(name = "subscriptions_url")
var subscriptionsUrl: String = ""
@Serializedname("organizations_url")
@Expose
@ColumnInfo(name = "organizations_url")
var organizationsUrl: String = ""
@Serializedname("repos_url")
@Expose
@ColumnInfo(name = "repos_url")
var reposUrl: String = ""
@Serializedname("events_url")
@Expose
@ColumnInfo(name = "user_events_url")
var eventsUrl: String = ""
@Serializedname("received_events_url")
@Expose
@ColumnInfo(name = "received_events_url")
var receivedEventsUrl: String = ""
@Serializedname("type")
@Expose
@ColumnInfo(name = "type")
var type: String = ""
@Serializedname("site_admin")
@Expose
@ColumnInfo(name = "site_admin")
var siteAdmin: Boolean = false
}
我想在房间数据库中保存GitHub api响应,但我不知道如何为嵌套对象创建实体类
如果需要更多信息,请告诉我。提前致谢。您的努力将不胜感激。
解决方法
您可以检查this Medium article,看看是否有帮助。这不是您的确切用例,但确实处理了一系列嵌套对象。