質問編集履歴

2

補足情報の追加

2021/05/03 11:06

投稿

_kei
_kei

スコア26

test CHANGED
File without changes
test CHANGED
@@ -149,3 +149,47 @@
149
149
 
150
150
 
151
151
  また、Converter関数の命名についてですが、to, fromを使ってどのように命名するのが適切でしょうか?
152
+
153
+
154
+
155
+ ##### 補足情報
156
+
157
+ データをJsonで保存するために、Gsonを使用して、
158
+
159
+ ```kotlin
160
+
161
+ class Converters {
162
+
163
+
164
+
165
+ companion object {
166
+
167
+
168
+
169
+ @JvmStatic
170
+
171
+ @TypeConverter
172
+
173
+ fun fromUser(user: User) = Gson().toJson(user)
174
+
175
+
176
+
177
+ @JvmStatic
178
+
179
+ @TypeConverter
180
+
181
+ fun toUser(user: String?) =
182
+
183
+ Gson().fromJson(user, User::class.java)
184
+
185
+ ```
186
+
187
+ としてみましたが、
188
+
189
+ ```
190
+
191
+ com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1 path typeconverter
192
+
193
+ ```
194
+
195
+ が出力され、思うように動作しませんでした。

1

説明の補足

2021/05/03 11:06

投稿

_kei
_kei

スコア26

test CHANGED
File without changes
test CHANGED
@@ -20,23 +20,21 @@
20
20
 
21
21
  val id: Int? = null,
22
22
 
23
- val curator: Curator,
23
+ val user: User,
24
24
 
25
- val thumbnails: Thumbnails,
25
+ val logos: Logos,
26
26
 
27
27
  val title: String,
28
28
 
29
29
  val url: String,
30
30
 
31
- val vod: Vod? = null
31
+ val video: Video? = null
32
32
 
33
33
  ) : Serializable
34
34
 
35
35
 
36
36
 
37
- data class Curator(
37
+ data class User(
38
-
39
- val id: String? = null,
40
38
 
41
39
  val logo: Any? = null,
42
40
 
@@ -46,17 +44,15 @@
46
44
 
47
45
 
48
46
 
49
- data class Thumbnails(
47
+ data class Logs(
50
48
 
51
49
  val medium: String? = null,
52
50
 
53
51
  val small: String? = null,
54
52
 
55
- val tiny: String? = null
56
-
57
53
  )
58
54
 
59
- data class Vod(
55
+ data class Video(
60
56
 
61
57
  val id: String? = null,
62
58
 
@@ -68,7 +64,9 @@
68
64
 
69
65
 
70
66
 
71
- 私は以下のようにTypeConverterを記述しましたが、うまく動作しません。どう書けばいいのか教えていただきたいです。
67
+ どう書けばいいのか教えていただきたいです。
68
+
69
+
72
70
 
73
71
  ```kotlin
74
72
 
@@ -76,9 +74,11 @@
76
74
 
77
75
  @TypeConverter
78
76
 
79
- fun fromBroadcaster(broadcaster: Broadcaster): String? {
77
+ fun fromUser(user: User): String? {
80
78
 
81
- return broadcaster.name
79
+ // 下の行をどう書けばいいか分かりません
80
+
81
+ return
82
82
 
83
83
  }
84
84
 
@@ -86,9 +86,11 @@
86
86
 
87
87
  @TypeConverter
88
88
 
89
- fun toBroadcaster(name: String): Broadcaster {
89
+ fun toUser(name: String): User {
90
90
 
91
- return Broadcaster(name = name)
91
+ // 下の行をどう書けばいいか分かりません
92
+
93
+ return
92
94
 
93
95
  }
94
96
 
@@ -96,9 +98,11 @@
96
98
 
97
99
  @TypeConverter
98
100
 
99
- fun fromCurator(curator: Curator): String? {
101
+ fun fromLogos(logos: Logos): String? {
100
102
 
103
+ // 下の行をどう書けばいいか分かりません
104
+
101
- return curator.name
105
+ return
102
106
 
103
107
  }
104
108
 
@@ -106,9 +110,11 @@
106
110
 
107
111
  @TypeConverter
108
112
 
109
- fun toCurator(name: String): Curator {
113
+ fun toLogos(name: String): Logos {
110
114
 
111
- return Curator(name = name)
115
+ // 下の行をどう書けばいいか分かりません
116
+
117
+ return
112
118
 
113
119
  }
114
120
 
@@ -116,9 +122,11 @@
116
122
 
117
123
  @TypeConverter
118
124
 
119
- fun fromThumbnails(thumbnails: Thumbnails): String? {
125
+ fun fromVideo(video: Vod?): String? {
120
126
 
121
- return thumbnails.medium
127
+ // 下の行をどう書けばいいか分かりません
128
+
129
+ return
122
130
 
123
131
  }
124
132
 
@@ -126,27 +134,9 @@
126
134
 
127
135
  @TypeConverter
128
136
 
129
- fun toThumbnails(name: String): Thumbnails {
137
+ fun toVideo(url: String?): Video {
130
138
 
131
- return Thumbnails()
132
-
133
- }
134
-
135
-
136
-
137
- @TypeConverter
138
-
139
- fun fromVod(vod: Vod?): String? {
140
-
141
- return vod?.id
142
-
143
- }
144
-
145
-
146
-
147
- @TypeConverter
148
-
149
- fun toVod(url: String?): Vod {
139
+ // 下の行をどう書けばいいか分かりません
150
140
 
151
141
  return Vod()
152
142